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