command模式
该模式仅由一个具有唯一方法的接口组成。
适用范围:数据库事务操作、设备控制、多线程核心以及GUI的do/undo管理。
template method模式和strategy 模式
用途:都可以分离通用的算法和具体的上下文。都允许高层的算法独立于它的具体实现细节重用
区别:
1.template method 模式使用继承实现,而strategy 模式使用委托实现
2.template method模式通用算法被放置在基类中,并且通过继承在不同的上下文中实现该通用算法。但是这项技术是有代价的。继承是一种非常强的关系。派生类不可避免的要和他们的基类绑定在一起。
strategy模式通用抽象算法定义在接口中,然后从接口派生出具体类,之后把具体类传递给调用者,调用者就可以把具体工作委托给接口完成。
3. strategy模式比template method 模式涉及更多数量的类和间接层次。
4.template method 模式部分违反了DIP,strategy完全遵循DIP原则。
说明:优先使用对象组合,而不是类继承
facade模式和mediator模式
两个模式具有共同的目的。他们把某种策略施加到另外一组对象上,facade模式从上面施加策略,而mediator模式则是从下面施加策略。facade模式的使用是明显而受限的,而mediator模式的使用是不明显且不受限制的。
singleton模式和monostate模式
用途:在强制要求某个特定对象只能有一个单一实例的时候使用。
实现技术:
1.singleton模式使用私有构造函数,一个静态变量,以及一个静态方法对实例化进行控制和限制。
2.monostate模式把对象的所有变量变成静态的。
null object模式
使用null object模式,可以确保函数总是返回有效的对象,即使在他们失败时也是如此,这些代表失败的对象“什么也不做”。
网友评论