设计模式简述
设计模式本身没有法则,但是设计模式所遵循的原则和规范可以被称为法则。
以下是常见的设计模式法则:
- 单一职责原则(Single Responsibility Principle,SRP):一个类应该只有一个引起它变化的原因。
- 开闭原则(Open-Closed Principle,OCP):软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。
- 里氏替换原则(Liskov Substitution Principle,LSP):任何基类可以出现的地方,子类一定可以出现。
- 依赖倒置原则(Dependency Inversion Principle,DIP):高层模块不应该依赖底层模块,二者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。
- 合成复用原则(Composite Reuse Principle, CRP):尽量使用对象组合,而不是继承来达到复用的目的。
- 接口隔离原则(Interface Segregation Principle,ISP):客户端不应该依赖它不需要的接口。
- 迪米特法则(Law of Demeter,LoD):一个对象应该对其他对象保持最少的了解。
以下是常用的设计模式
创建型模式
创建型模式主要关注对象的创建过程,包括如何创建对象、如何管理对象的生命周期、如何避免重复创建对象等。
- 简单工厂模式(Simple Factory Pattern)
- 工厂方法模式(Factory Method Pattern)
- 抽象工厂模式(Abstract Factory Pattern)
- 单例模式(Singleton Pattern)
- 原型模式(Prototype Pattern)
- 建造者模式(Builder Pattern)
结构型模式
结构型模式主要关注对象的组织方式,包括如何将对象组合成更大的结构、如何简化对象之间的交互、如何动态地修改对象的结构等。
- 适配器模式(Adapter Pattern)
- 桥接模式(Bridge Pattern)
- 装饰器模式(Decorator Pattern)
- 组合模式(Composite Pattern)
- 外观模式(Facade Pattern)
- 享元模式(Flyweight Pattern)
- 代理模式(Proxy Pattern)
行为型模式
行为型模式主要关注对象之间的交互和协作方式,包括如何定义对象的行为、如何让对象之间的交互更加灵活和可扩展、如何处理对象之间的依赖关系等。
