设计模式按原则分类
设计模式通常遵循面向对象设计的基本原则,如单一职责原则、开闭原则、里氏替换原则、依赖倒置原则和接口隔离原则。每种设计模式根据其目的和应用场景,可能会更加侧重于某些原则。以下是一些设计模式及其主要遵循的原则的对应关系:
单一职责原则(SRP)
- 命令(Command):将请求封装成对象,每个命令都专注于执行一项任务。
- 观察者(Observer):分离了观察者和被观察者,使得每个部分只负责自身的职责。
开闭原则(OCP)
- 策略(Strategy):允许在不修改上下文代码的情况下更换算法或行为。
- 装饰(Decorator):在不改变原有对象的基础上,通过添加装饰者来扩展功能。
- 桥接(Bridge):将抽象与实现分离,使它们可以独立地变化。
里氏替换原则(LSP)
- 工厂方法(Factory Method):通过基类定义创建对象的接口,子类可以替换父类而提供具体的实现。
- 模板方法(Template Method):允许子类在不改变算法结构的情况下重定义算法的某些步骤。
依赖倒置原则(DIP)
- 抽象工厂(Abstract Factory):通过对抽象工厂和产品进行编程,而不是具体的实现,从而减少依赖。
- 中介者(Mediator):通过使对象不直接相互通信,而是通过中介者来通信,从而减少类之间的依赖关系。
接口隔离原则(ISP)
- 适配器(Adapter):通过提供一个中间层,使原本由于接口不兼容而不能一起工作的类可以协同工作。
- 外观(Facade):为子系统中的一组接口提供一个统一的高层接口,使子系统更易使用,但又不增加新的接口依赖。
合成复用原则(CRP)
- 组合(Composite):通过将对象组合成树状结构来表示部分整体层次,优先使用对象的组合而非继承关系来实现复用。
- 装饰(Decorator):通过将对象包装在装饰类中来添加新的行为,使用组合而非继承来扩展对象的功能。
迪米特法则(LoD)/最少知识原则
- 外观(Facade):为复杂的子系统提供一个简化的接口,减少系统间的直接交互,降低系统的耦合度。
- 中介者(Mediator):通过让对象仅与中介者交流,而不是直接与其他对象交流,减少对象间的依赖关系和交流。
设计模式通过这些原则来指导如何组织对象和类的关系,以达到高内聚、低耦合的设计目标。理解每种设计模式背后的原则,可以帮助更好地理解、选择和应用这些模式。
浙公网安备 33010602011771号