二十三种设计模式
设计模式
6大设计模式原则
讲设计模式之前,我们需要软件开发的6大准则:
我先背一下:
- 迪米特原则
- 开闭原则
- 里氏替换原则
- 单一职责
- 依赖倒置原则
- 接口隔离原则
迪米特原则(Law of Demeter,LoD)
一个对象应该对其他对象有最少的了解。也就是说,一个对象应该对自己需要的对象和方法尽可能少的了解,只与直接的朋友通信。直接的朋友是指出现在成员变量、方法输入、输出参数中的类。这样可以降低对象之间的耦合度。
开放封闭原则(Open-Closed Principle,OCP)
开放封闭原则(Open-Closed Principle,OCP):一个软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。在不修改原有代码的情况下,可以通过扩展来增加新的功能。
里氏替换原则(Liskov Substitution Principle,LSP)
里氏替换原则(Liskov Substitution Principle,LSP):子类必须能够替换掉它们的父类,而不影响程序的正确性。也就是说,继承关系中父类能出现的地方子类都可以出现。
单一职责原则(Single Responsibility Principle,SRP)
单一职责原则(Single Responsibility Principle,SRP):一个类只负责一个功能领域中的一种职责,即一个类只有一个引起它变化的原因。这样可以使类更加内聚,降低代码的耦合度。
依赖倒置原则(Dependency Inversion Principle,DIP)
依赖倒置原则(Dependency Inversion Principle,DIP):高层模块不应该依赖于底层模块,两者都应该依赖于抽象。抽象不应该依赖于具体实现,具体实现应该依赖于抽象。
接口隔离原则(Interface Segregation Principle,ISP)
接口隔离原则(Interface Segregation Principle,ISP):一个类对另一个类的依赖应该建立在最小的接口上。应该尽量避免一个类依赖于它不需要的接口。
设计模式分类
有了上述的几大原则,我们正式开始进入设计模式章节:
创建型模式共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式,原型模式。(工单建原)
结构性模式共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。(适装外代享组桥)
行为型模式共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。(策模观迭责命备,状访中解)