设计模式是一种写代码的套路。
设计模式的分类
- 创建型模式 这类模式关注对象的创建机制,让对象创建更加灵活和符合需求。
- 单例模式:确保一个类只有一个实例
- 工厂模式:提供创建对象的接口,让子类决定实例化哪个类
- 建造者模式:将复杂对象的构建与其表示分离
- 结构型模式 这类模式关注类和对象的组合方式,形成更大的结构。
- 适配器模式:使不兼容的接口能够协同工作
- 装饰器模式:动态地为对象添加新功能
- 代理模式:为其他对象提供一种代理以控制对这个对象的访问
- 行为型模式 这类模式关注对象之间的职责分配和通信方式。
- 观察者模式:定义对象间的一对多依赖关系
- 策略模式:定义一系列算法,使它们可以相互替换
- 命令模式:将请求封装为对象
六大设计原则
设计模式在被设计出来的时候,也是遵循一些原则的,这样才能保证设计的代码的质量和可维护性。
- 开闭原则(Open-Closed Principle)
- 对扩展开放,对修改关闭。软件应能通过扩展新功能,而非修改已有代码来适应变化。实现这一原则的核心在于使用抽象(接口或基类)定义稳定的行为。
- 里氏替换原则(Liskov Substitution Principle)
- 任何基类出现的地方,子类都应该可以替代。只有当派生类能完全替代基类时,继承才有意义。这一原则保证了多态的正确性,是开闭原则的重要补充。
- 依赖倒置原则(Dependency Inversion Principle)
- 高层模块不应依赖低层模块,两者都应依赖抽象。具体实现应依赖接口或抽象类,而不是直接依赖具体类。该原则使系统更易于扩展与测试。
- 接口隔离原则(Interface Segregation Principle)
- 一个类不应该依赖它不需要的接口。应将大接口拆分为多个更小、更专用的接口,以降低耦合、提高灵活性。
- 迪米特法则(Law of Demeter)
- 又称”最少知道原则”:一个对象应尽量减少与其他对象的交互。换言之,一个类应只了解与自己直接相关的对象,从而降低系统复杂度。
- 合成复用原则(Composite Reuse Principle)
- 优先使用组合或聚合关系来实现复用,而非继承。继承会造成强耦合,而组合能在运行时灵活替换依赖,实现更优雅的结构设计。