我们将Command 和Visitor归为“行为变化”模式。
Command 命令模式与函数对象十分类似,但在C++主流框架中,函数对象(function object)应用的更为广泛。
文章目录
1. “行为变化”模式
- 在组件的构建过程中,组件行为的变化经常导致组件本身剧烈的变化。“行为变化”模式将组件的行为和组件本身进行解耦,从而支持组件行为的变化,实现两者之间的松耦合
行为一般是一段代码,代码和对象之间的绑定关系是极其紧密的,是一种天然的编译式绑定。类的成员函数分为两类,一类是虚函数,一类是非虚的或者静态函数,第二类函数是地址编译时静态的绑定,虚函数是运行时的绑定,这些绑定实际上是非常紧耦合的。“行为变化”模式将组件的行为和组件本身进行解耦,从而支持组件行为的变化,实现两者之间的松耦合。
1.1 典型模式
-
Command
-
Visitor
2. 动机( Motivation )
-
在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合一一比如需要对行