Skip to content

Assemble as chain

为什么要assemble as chain?

1、非常地灵活、优雅。

2、符合结构的linear特性(linear structure)

Application

1、对于流程型application

2、stream

Dynamic chain and static chain

1、decorator pattern就是典型的dynamic chain

2、C++中,有很多static chain的例子

例子

AOP

1、aspect chain

Function composition、Pipeline

1、将上一个的输出作为下一个的输入,这是非常典型的。

2、这是在stream programming model中,使用地比较多的

Decorator pattern

参见相关章节。

Chain of responsibility

参见相关章节。

Linked list model

1、需要注意的是,本节标题中,使用了"linked list",其实它并不一定对应的是linked list,而是类似linked list的模式。

2、linked list的模式是: 通过next pointer将多个node串联起来,形成一个list、chain

3、我们将next pointer推广: 如何可以充当类似linked list中next pointer功能的,可以将两个node(此处的node应该是抽象的node),都能够形成逻辑上的linked list

Stream append model

Stream append model就是属于Linked list model。

典型的例子包括:

使用一个operator来将多个node连接起来,比如C++ << operator。

补充

参见 C++ Assemble-as-chain 章节,其中有很多内容。