设计模式(Design Pattern)

文章目录
  1. 1. 设计模式
    1. 1.1. 分类
      1. 1.1.1. 一、创建型模式:
      2. 1.1.2. 二、结构型模式
      3. 1.1.3. 三、行为型模式
    2. 1.2. 六大原则
      1. 1.2.1. 一、单一职责原则
      2. 1.2.2. 二、开闭原则
      3. 1.2.3. 三、里氏代换原则
      4. 1.2.4. 四、依赖倒置原则
      5. 1.2.5. 五、接口隔离原则
      6. 1.2.6. 六、迪米特原则(最少知道原则)

设计模式是前人通过不断实践总结出来的经验。在日常编码也时有用到,更多的体现是在各大框架设计里面。之前自己学习过,但没有通过自己总结出来,接下来,我将系统的总结设计模式,加深自己对设计模式的理解

设计模式

分类

一、创建型模式:

1.工厂模式
2.抽象工厂模式
3.单例模式
4.建造者模式
5.原型模式

二、结构型模式

1.适配器模式
2.桥接模式
3.过滤器模式
4.代理模式
5.组合模式
6.装饰器模式
7.外观模式
8.享元模式

三、行为型模式

1.责任链模式
2.命令模式
3.解释器模式
4.迭代器模式
5.备忘录模式
6.中介者模式
7.观察者模式
8.状态模式
9.空对象模式
10.策略模式
11.模板方法模式
12.访问者模式

六大原则

一、单一职责原则

每个类的职责应该是单一的,不能让一个类负责做个业务。
比如说:一个类负责职责A和职责B,当职责A的需求变更时,需要修改职责A的代码,可能会导致职责B的代码出现问题为了避免出现这样的问题,所以要一个类对应一个职责

二、开闭原则

对扩展开放,对修改关闭
比如说:一个创建水果的类,本来可以创建香蕉、西瓜两个水果。如果这个类要新加创建芒果的方法,就得对这个类进行修改,如果再加其他水果,又得对该类进行方法的新增。所以可以对香蕉、西瓜等水果进行抽象,创建水果的类只提供创建方法,要新加芒果时,只需要扩展一个芒果类即可,不需要对创建水果类进行修改。开闭原则的关键就在于抽象二字

三、里氏代换原则

任何基类出现的地方,其子类也可以出现,替代其使用不会是出现错误
换种方式说就是,我喜欢狗,所以我一定喜欢动物;但我喜欢动物,我不一定喜欢狗。里氏代换原则其实是对开闭原则的补充也就是抽象的具体实现,而实现需要注意的也就是抽象时需要注意的情况:

1. 子类必须实现父类的抽象方法,不能实现非抽象方法
2. 子类可以增加自己的方法

四、依赖倒置原则

抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程

五、接口隔离原则

使用多个专门的接口,而不使用单一的总接口
比方说鸟和壁虎都属于动物,都实现动物接口,按理动物接口要包括飞行方法、爬行方法,但鸟类实现接口之后具有爬行方法、显然不合适。所以要拆分成,飞行动物接口和爬行动物接口。

六、迪米特原则(最少知道原则)

一个软件实体应当尽可能少地与其他实体发生相互作用
迪米特法则要求我们在设计系统时,应该尽量减少对象之间的交互,如果两个对象之间不必彼此直接通信,那么这两个对象就不应当发生任何直接的相互作用,如果其中的一个对象需要调用另一个对象的某一个方法的话,可以通过第三者转发这个调用。简言之,就是通过引入一个合理的第三者来降低现有对象之间的耦合度。