一、什么是设计模式
1、设计模式是在软件设计中反复出现的问题的通用解决方案。它们是经过多次验证和应用的指导原则,旨在帮助软件开发人员解决特定类型的问题,提高代码的可维护性、可扩展性和重用性。 2、设计模式是一种抽象化的思维方式,可以帮助开发人员更好地组织和设计他们的代码。它们提供了一种通用的框架,可以用于解决各种不同的软件设计问题。设计模式不是完整的代码,而是一种描述问题和解决方案之间关系的模板。 3、设计模式并不是一成不变的法则,而是根据不同的问题和情境来决定是否使用以及如何使用。了解和应用设计模式可以帮助开发人员更好地组织代码,提高代码的可读性和可维护性,同时也有助于促进团队之间的合作和沟通。
二、设计模式的分类
- 创建型模式(Creational):关注对象的实例化过程,包括了如何实例化对象、隐藏对象的创建细节等。常见的创建型模式有单例模式、工厂模式、抽象工厂模式等。
- 结构型模式(Structural):关注对象之间的组合方式,以达到构建更大结构的目标。这些模式帮助你定义对象之间的关系,从而实现更大的结构。常见的结构型模式有适配器模式、装饰器模式、代理模式等。
- 行为型模式(Behavioral):关注对象之间的通信方式,以及如何合作共同完成任务。这些模式涉及到对象之间的交互、责任分配等。常见的行为型模式有观察者模式、策略模式、命令模式等。
三、设计模式的六大原则
- 单一职责原则(SRP):一个类只应该有一个引起它变化的原因。
- 开放封闭原则(OCP):软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。
- 里氏替换原则(LSP):子类型必须能够替换掉它们的父类型。
- 依赖倒置原则(DIP):高层模块不应该依赖于低层模块,两者都应该依赖于抽象接口;抽象接口不应该依赖于具体实现,具体实现应该依赖于抽象接口。
- 接口隔离原则(ISP):不应该强迫一个类实现它不需要的接口,应该将接口拆分成更小和更具体的部分,以便客户端只需要知道它们感兴趣的部分。
- 迪米特法则(LOD):一个对象应该对其他对象有尽可能少的了解,通常称为“最少知识原则”。
四、种设计模式概览
五、详情(每种模式详情中包含源码)
- 工厂方法模式(Factory Method)
- 抽象工厂模式(Abstract Factory)
- 建造者模式(Builder)
- 原型模式(Prototype)
- 单例模式(Singleton)
- 适配器模式(Adapter)
- 桥接模式(Bridge)(待续···)
- 组合模式(Composite)
- 装饰模式(Decorator)(待续···)
- 外观模式(Facade)(待续···)
- 享元模式(Flyweight)(待续···)
- 代理模式(Proxy)(待续···)
- 解释器模式(Interpreter)(待续···)
- 模板方法模式(Template Method)(待续···)
- 责任链模式(Chain of Responsibility)(待续···)
- 命令模式(Command)(待续···)
- 迭代器模式(lterator)(待续···)
- 中介者模式(Mediator)(待续···)
- 备忘录模式(Memento)(待续···)
- 观察者模式(Observer)(待续···)
- 状态模式(State)(待续···)
- 策略模式(Strategy)(待续···)
- 访问者模式(Visitor)(待续···)