一、适配器模式(不是软件设计阶段考虑的,是随后维护中):

  将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于类的不匹配所造成的类的兼容问题。分为类的适配器模式、对象的适配器模式、接口的适配器模式。

二、委派模式

  负责任务的调度和分配任务,跟代理模式很像,可以看做是特殊情况下的静态代理的全权代理,但是代理模式注重过程,而委派模式注重结果。运用该模式可以精简代码,提高代码的可读性。如boss把任务发给leader,leader再委派给各个员工。

三、策略模式

  用它可以消除大量条件转移语句,提高算法的保密性与安全性。是指定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的修改不会影响到使用算法的客户。如商品在做活动时有优惠券优惠、返现优惠、团购优惠。在之前,随着业务量的积累,活动越来越多,在活动之前都要改代码,判断逻辑也会越来越复杂,修改风险会增高,运用了策略模式后,代码会优雅很多。

四、模板模式

  是指定义一个算法的骨架,并允许子类为一个或者多个步骤提供实现。模板方法使得子类在不改变算法结构的情况下,重新定义算法的某些步骤。

  适用场景:

    一次性实现算法中不变的部分,并将可变部分留给子类实现。

    子类中公共的方法被提取出来放到公共父类中,以提高代码的复用。

五、装饰者模式(重构项目)

  作用是扩展原有对象,在不改变原有对象的情况下,将功能附加到对象上,提供了比继承更有弹性的替代方案。

  使用场景:

    用于扩展一个类或者给一个类添加附加职责

    动态给一个类添加功能,且这些功能可动态撤销。

  优点:
    是继承的有力补充,比继承更为灵活,在不修改对象的情况下动态给对象扩展功能,即插即用。

    通过使用不同的装饰类以及这些装饰类的排列组合,可实现不同效果。

    遵守开闭原则

六、观察者模式(也叫发布订阅模式)

  定义了对象之间的一对多依赖,让多个观察者对象同时监听同一个主体对象,当主体对象发生变化时,它的所有依赖者都会收到通知并更新。