设计模式--23种模式精华(二)

来源:互联网 发布:优酷总是网络连接失败 编辑:程序博客网 时间:2024/06/05 11:38

原型模式(Prototype)

  • 抽象概念
    • 生产的时候是通过复制的方式把原来的产品复制一个出来,然后在这个产品上面进行调整
  • 使用场景
    • 大量new相同对象的时候
    • new 对象比较繁琐的时候
  • 方法
    • clone
  • 优点
    • 内存拷贝,性能比较好
  • 注意点
    - 不执行构造方法
    - 深浅拷贝的问题

中介者模式(Mediator)

  • 抽象概念
    • 进销存,三个对象互相都有关联,形成的是网状关系
    • 如果采用中介者,形成的是星性的关系
  • 场景
    • 对象耦合的情况下,使用中介者模式可以进行相对的解耦.耦合都在中介者这里,
    • 尤其是网状关系可以改成星型的关系
  • 方法
    • 将对象关联关系的操作定义到中介者对象里

命令模式(Command)

  • 抽象概念
    • 不同的人接受不同命令交给不同的执行者去执行
  • 场景
    • 某些操作在不同的接受者和不同执行者的情况下有所不同的场景
  • 方法
    • 分开定义接受类,执行类,命令类
    • 首先创建命令,由接受类接受命令,然后将接受类交由执行者执行
    • -

责任链模式(Chain of Responsibility)

  • 抽象概念
    • 打仗了,班长接到个情报,有可能是班长说这个我可以处理,或这我处理完了给排长汇报,那个处理不了给排长处理吧,排长同样找连长,连长去找团长
    • 总是要有人负责的
  • 场景:
    • 请求来了之后,发送请求的人不关心后面有多少个流程,只关系最后的结果
    • 事情的处理有一定的流程,存在顺序
  • 方法
    • 使用链表的方式

装饰模式(Decorator)

  • 抽象概念
    • 给一个盒子装一个漂亮的盒子,在外面还可以装一个更漂亮的盒子,可以包装n个盒子,使用的时候,从外面一个一个打开,直到最后一个盒子打开
    • 本质上没变,但多了层层的装饰和伪装
    • 具有代理类的一定特征,具有责任链的一定特征,具有继承的一定特征
  • 场景
    • 代替继承来实现类似子类的扩展
  • 方法
    • 定义一个接口,叫抽象构件
    • 具体的业务基础这个接口,叫具体构件
    • 抽象的装饰类继承这个接口,抽象装饰者,定义一个被装饰的抽象构件
    • 继承与抽象装饰者,叫具体装饰者,复写抽象构建的业务方法
    • 使用的时候可以不停的新创建一个新的装饰者,参数是具体构件或装饰后的构件
0 0
原创粉丝点击