敏捷软件开发 之第三部分 薪水支付系统案例研究 之设计模式

4月箴言

真的猛士,敢于直面惨淡的人生,敢于正视淋漓的鲜血。—— 鲁迅

 

一、COMMAND模式和ACTIVE OBJECTIVE模式

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:设计模式任重道远!

posted on 2019-04-07 22:10 海菲菲菲 阅读(...) 评论(...) 编辑 收藏

导航