4月箴言
真的猛士,敢于直面惨淡的人生,敢于正视淋漓的鲜血。
COMMAND模式的巨大好处:通过对命令(command)概念的封装,解除了除了系统对逻辑互联关系的是连接关系的设备之间的耦合。
适用范围:数据库事务操作、设备控制、多线程核心一级GUI的do/undo管理等。
二、TEMPLATE METHOD 模式和STRATEGY模式:继承与委托
TEMPLATE METHOD 模式使用继承来解决问题,STRATEGY模式使用的则是委托。
这两种模式都可以用来分离高层的算法和低层的具体实现细节。都允许高层的算法独立于它的具体实现细节重用。
STRATEGY模式允许具体实现细节独立于高层的算法重用,不过要以一些额外的复杂性、内存以及运行时间开销作为代价!
三、FACADE模式和MEDIATOR模式
共同点:都把某种策略(policy)施加到另外一组对象上。FACADE模式是从上面施加,MEDIATOR模式则是从下面施加。
如果策略涉及范围广泛且可见,那么使用FACADE模式从上面施加策略;如果策略隐蔽并且有针对性,那么MEDIATOR模式是更好的选择
四、SINGLETON模式和MONOSTATE模式
这两个模式都是强制对象单一的模式。
SINGLETON模式的好处:跨平台、适用于任何类、可以通过派生创建、延迟求值
SINGLETON模式的代价:摧毁方法未定义、不能继承、效率问题、不透明性。
MONOSTATE模式的好处:透明性、可派生性、多态性
MONOSTATE模式的代价:不可转换性、效率问题、内存占用、平台局限。
两个模式的却别:SINGLETON模式强制结构的单一想,它防止创建多个对象实例;MONOSTATE模式则强制行为上的单一性,没有强加结构方面的限制。
MONOSTATE模式类的测试用例对SINGLETON模式类是有效的,但是SINGLETON模式类的测试用例远不适用于MONOSTATE模式的类。
五、NULL OBJECT模式
使用该模式可以确保函数总是返回有效的对象,即使在它失败时也是如此,这些失败的对象“什么也不做”。
目前只是了解到这些设计模式,在之前的开发过程中,只有SINGLETON模式是明确使用过的,
其他的还是有点云里雾里,还需要继续了解示例,准确理解这几种设计模式!
关于设计模式的使用,滥用之类相关是需要特别注意的!不要为了使用设计模式而使用,那就是滥用了!
PS:设计模式任重道远!