zoukankan      html  css  js  c++  java
  • 敏捷软件开发 之第三部分 薪水支付系统案例研究 之设计模式

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

  • 相关阅读:
    tracert命令与tracert (IP地址)-d有什么区别?
    linux下通过进程名查看其占用端口
    Union和Union All的区别
    外连接、内连接
    Linux 删除文件夹和文件的命令(强制删除包括非空文件)
    linux查看当前目录
    Linux chmod命令及权限含义
    MySQL的if,case语句
    case when
    java生成验证码图片
  • 原文地址:https://www.cnblogs.com/lisaloveyou1900/p/10667654.html
Copyright © 2011-2022 走看看