23种设计模式 和六大原则概述

本文介绍了设计模式在软件开发中的重要性,包括创建型、结构型和行为型模式,以及遵循的六个核心原则,如单一职责原则到开闭原则,以提升代码质量与可维护性。
摘要由CSDN通过智能技术生成

设计模式(Design pattern)简介

设计模式是一种在软件开发中常用的方法论,它提供了一些经验丰富的解决方案,帮助解决常见的设计问题。设计模式可以提高代码的可维护性、可扩展性和可重用性,同时降低了代码的复杂性。

设计模式主要是基于以下原则:

  1. 对接口编程而不是对实现编程。
  2. 优先使用对象组合而不是继承。

 1.创建型模式

创建型模式是设计模式中的一类,它关注的是对象的创建过程,以确保创建对象的方式是灵活、可扩展和可管理的。这些模式通常用于封装对象的创建细节,以降低系统的耦合度,同时提供更好的对象创建和初始化方式。

  1. 单例模式(Singleton Pattern)
  2. 工厂方法模式(Factory Method Pattern)
  3. 抽象工厂模式(Abstract Factory Pattern)
  4. 建造者模式(Builder Pattern)
  5. 原型模式(Prototype Pattern)

 

2.结构型模式

结构型模式是设计模式中的一种,它关注的是如何将类和对象组合成更大的结构,以满足系统的需求。这些模式通常用于处理对象之间的组合、继承和关联关系,以实现更灵活、可复用和可扩展的代码结构。 

  1. 适配器模式(Adapter Pattern)
  2. 装饰者模式(Decorator Pattern)
  3. 代理模式(Proxy Pattern)
  4. 组合模式(Composite Pattern)
  5. 桥接模式(Bridge Pattern)
  6. 享元模式(Flyweight Pattern)

3.行为型模式 

行为型模式是设计模式中的一种,它关注的是对象之间的通信和协作方式,以及对象如何分配职责和责任。这些模式通常用于处理对象之间的交互,以实现更灵活、可扩展和可维护的代码。

  1. 观察者模式(Observer Pattern)
  2. 策略模式(Strategy Pattern)
  3. 命令模式(Command Pattern)
  4. 状态模式(State Pattern)
  5. 责任链模式(Chain of Responsibility Pattern)
  6. 模板方法模式(Template Method Pattern)
  7. 访问者模式(Visitor Pattern)
  8. 中介者模式(Mediator Pattern)
  9. 备忘录模式(Memento Pattern)
  10. 解释器模式(Interpreter Pattern)
  11. 空对象模式(Null Object Pattern)
  12. 策略模式(Strategy Pattern)

六大原则概述如下:

 

单一职责原则(Single Responsibility Principle - SRP)

这个原则强调一个类应该只有一个原因去改变。换句话说,一个类应该只有一个职责。这有助于确保类的代码清晰、简单,并且容易维护。如果一个类负责太多不同的事情,那么它会变得复杂难以理解,而且修改一个职责可能会影响其他职责。

接口隔离原则(Interface Segregation Principle - ISP)

这个原则建议将接口分离成更小、更专注的接口,而不是创建一个庞大的通用接口。这样可以确保每个类只需要实现与其相关的接口,而不需要实现不需要的方法。这有助于降低类之间的依赖性。

依赖倒置原则(Dependency Inversion Principle - DIP)

这个原则强调高层次模块不应该依赖于低层次模块,而两者都应该依赖于抽象。此外,抽象不应该依赖于细节,而细节应该依赖于抽象。这有助于减少模块之间的耦合,并使代码更易于扩展和维护。

里氏替换原则(Liskov Substitution Principle - LSP)

这个原则指出,子类应该能够替代其父类,而不会引起意外的行为变化。这意味着在子类中不能改变父类的预期行为,否则会违反这个原则。遵守 LSP 有助于确保类的继承关系正确、稳定,同时增强了代码的可靠性。

开闭原则(Open-Closed Principle - OCP)

这个原则要求软件实体(例如类、模块、函数等)应该对扩展开放,但对修改关闭。这意味着应该通过添加新代码来扩展系统的功能,而不是修改已有的代码。这有助于避免破坏现有功能,同时提高代码的可维护性和可扩展性。

迪米特法则(Law of Demeter,又称最少知识原则)

这个原则强调一个对象应该只与其直接的朋友进行通信,而不是与陌生的对象进行通信。这有助于降低对象之间的耦合度,提高系统的灵活性和可维护性。

遵循这些 原则有助于设计出更清晰、更可维护、更可扩展的软件架构,并降低了代码的复杂性和错误发生的概率。这些原则是面向对象编程的基石,可以提高软件开发的质量和效率。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值