设计模式按原则分类
设计模式通常遵循面向对象设计的基本原则,如单一职责原则、开闭原则、里氏替换原则、依赖倒置原则和接口隔离原则。每种设计模式根据其目的和应用场景,可能会更加侧重于某些原则。以下是一些设计模式及其主要遵循的原则的对应关系:
单一职责原则(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):通过让对象仅与中介者交流,而不是直接与其他对象交流,减少对象间的依赖关系和交流。
设计模式通过这些原则来指导如何组织对象和类的关系,以达到高内聚、低耦合的设计目标。理解每种设计模式背后的原则,可以帮助更好地理解、选择和应用这些模式。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)