设计模式

  没有什么设计模式是完美无缺的,一个设计模式就是解决一类的问题,通常设计模式在解决一类问题的同时,还会带来别的问题,我们设计者要做的事,就是扬长避短。

1、创建型设计模式,5个===》关注对象的创建

2、结构型设计模式,7个===》关注类与类之间的关系

3、行为设计模式,11个====》关注对象和行为的分离

  设计模式六大原则:单一职责、里氏替换原则、依赖倒置原则、迪米特法则、接口隔离原则、开闭原则。这些只能叫原则,是建议,没有实际的招数。

  面向对象23中设计模式:

    面向对象语言开发过程中,遇到的种种场景和问题,提出了解决方案和思路,沉淀下来就变成了设计模式。

1、创建型设计模式:关注对象的创建

  单例模式:

    就是限制了对象的创建,重用了对象

  原型模式:

    换个方式创建对象,不走构造函数,而是内存拷贝

  三大工厂:

    简单工厂:不直接new出来,把对象创建移到工厂,简单工厂不属于23种设计模式

    工厂方法:转移对象的创建,留下了扩展空间

    抽象工厂:屏蔽对象的创建;约束强制保障产品簇;创建对象,创建一组密不可分的对象。

2、结构型设计模式:关注类与类之间的关系

  纵向关系:继承≈实现,超强关联

  横向关系:组合>聚合>关联>依赖

    依赖:出现在方法内部。

  组合优于继承,结构型设计模式的核心。

  适配器模式:

    解决重构的问题,新东西和旧系统不吻合,通过继承/组合进行适配。

  代理模式:

    通过代理完成对业务的访问,包一层方便任意功能的扩展

  装饰器模式:

    结构型设计模式巅峰之作,组合+继承,通过组合+继承,完成对象功能动态扩展。

  外观模式(门面模式)

  组合模式

  桥接模式

  享元模式

  多种设计模式,其实就是组合包一层,然后加功能。解决不同的问题,然后有不同的侧重点,也有不同的规范。

3、行为型设计模式:关注对象和行为的分离

  核心:甩锅大法,把锅丢出去,只管自己,把不稳定的地方移出去,自己只谢文鼎的,能保证自身的稳定。

  模板方法设计模式:

    在基类中定义流程,把可变逻辑分离到不同子类实现

  观察者模式:

    一个对象动作触发多个对象的行为,通过观察者可以去掉对象的依赖,支持各种已定义和扩展

  责任链设计模式:

    把请求的处理流程,沿着链子顺序执行,还允许链子的扩展和定制

  策略模式、迭代器模式........

很多时候,可能会融合应用多个设计模式,分别解决对应的问题。

原文地址:https://www.cnblogs.com/taotaozhuanyong/p/11548827.html