Golang中defer关键字的使用
The first design pattern principle
> program to an interface, not an implementation
The sencond design pattern principle
> favor object composition over class inheritance
> program to an interface, not an implementation
> favor object composition over class inheritance