标签:魔法 table condition time authorize dex 针对 adapter lib
一、for循环
|
|
二、Orthogonal Composition
1、vertical composition thought(垂直组合思维)
Go语言通过type embedding实现垂直组合。组合方式莫过于以下这么几种:
a) construct interface by embedding interface
通过在interface中嵌入interface type name,实现接口行为聚合,组成大接口。这种方式在stdlib中尤为常用。
|
|
b) construct struct by embedding interface
|
|
c) construct struct by embedding struct
|
|
在struct中嵌入interface type name和在struct嵌入struct,都是“ 大专栏 随便记记(一)委派模式(delegate)”的一种应用。在struct中嵌入interface方便快速构建满足某一个interface的dummy struct,方便快速进行unit testing,仅需实现少数需要的接口方法即可,尤其是针对Big interface时。
struct中嵌入struct,被嵌入的struct的method会被提升到外面的类型中,比如上述的poolLocal struct,对于外部来说它拥有了Lock和Unlock方法,但是实际调用时,method调用实际被传给poolLocal中的Mutex实例。
2、small interface thought(小接口思维)
interface是Go语言真正的魔法。前面提到过,interface好比程序肌体的骨架关节,上下连接着骨架部件。interface决定了Go语言中类型的水平组合方式。interface与其实现者之间的关系是隐式的,无需显式的”implements”声明(但编译器会做静态检查);interface仅仅是method集合,而method和普通function一样声明,无需在特定位置。
3、horizontal composition thought(水平组合思维)
middleware这个词的含义可大可小,在Go Web编程中,常常指的是一个满足Handler interface的HandlerFunc类型实例。实质上:
|
|
例子:
|
|
标签:魔法 table condition time authorize dex 针对 adapter lib
原文地址:https://www.cnblogs.com/lijianming180/p/12286147.html