桥接模式
针对接口编程,就是桥接模式
策略模式
策略模式也可看作是针对接口编程
状态模式
状态模式通过 Context 来切换状态,各个状态直接是强关系。切换时直接 new 出下一个状态。
模板方法模式
用来实现框架,规划好调用流程,你来实现,框架调用你。MFC 是一个很差实现。
抽象工厂模式
不同的数据访问族类,比如 oledb 族,oracle 族 等等
大部分时候不要替换 DAO,很少用到。
简单工厂模式
DLL 导出简单工厂函数,由 DLL 导出函数创建对象
工厂方法模式
COM 类厂,自己实现
Builder 模式
windows 窗口是一个大对象,放在上面的各种按钮是小对象,大对象由各种小对象构造而成,构造步骤通常在窗体的初始化函数类,比如 Init()
装饰模式
装饰模式可以做对象方法钩子
享元模式
享元模式实际上可看作个多个对象共享一个对象引用,当然这个对象引用可以用对象管理器管理器来,比如 map,然后通过 key 来查询
迭代器模式
迭代器模式就是各种集合类的迭代接口统一,循环遍历统一,通过自己的对象方法返回迭代器接口,迭代器的实例化 new
的时候传 this
指针
Observer 模式
典型的一对多,相同的事件可注册多个观察者,如果没有事件管理器,那么业务类直接实现 Observer
接口,可接受观察者订阅。如果有事件管理器,观察者可能直接连在事件管理器上,不与业务对象交互,业务对象直接发送事件即可。
如果是一对一,那么可直接看作聚合了一个简单的回调接口。
代理模式
远程方法调用代理
Visitor 模式
accept
可看作是一个不保持对象引用的 set
构造子,只不过在接受之后直接调用了 Visitor 的 Visit
方法,并将 this 指针传入。这样的好处是,迭代时,不同的被访问者都可以被相同的 Visitor 访问,调用相同的 Visit 方法,当然这个 Visit 方法是重载的。
Dispatcher 模式
网络协议分派,不同的协议由不同的 handler 来响应,dispatcher 可注册 handler,
如果是事件分发器,可以一个事件对应多个 handler。
网友评论