关于设计模式(About Design Pattern)
一、 什么是设计模式
设计模式不是我们熟知的某种框架,也不是某种具体的实现,而是作为编程问题的解决方案(指导思想)而存在。它描述了众多有经验的开发人员以往多次遇到问题的通用解决办法。
二、设计模式分类
从类型上看,设计模式可以分为三大类:生成模式(Creational Patterns)、结构模式(Structural Patterns)和行为模式(Behavioral Pattern)。
2.1 生成模式(Creational Patterns)
生成类包含以下几种设计模式:
- 抽象工厂模式-Abstract Factory Pattern: 产品有多种类别,N个工厂类把工厂抽象出来(不一定是一个工厂只负责生产一类产品,看实际需求)
- 建造者模式-Builder Pattern: 产品与产品建造流程进行解耦,用简单方式生产出复杂的产品,不用深入了解产品构造,只是简单的配置就好。
- 工厂方法模式-Factory Method Pattern: 将同一类产品分为不同的部分,每个工厂负责生产其中的一部分。
- 原型模式-Prototype Pattern: 可以直接使用Java自带的clone进行浅拷贝,也可以用Java反序列化,进行深拷贝。
- 单例模式-Singleton Pattern: 在整个系统中,有且只有一个单体的对象实例。
2.2结构模式(Structural Patterns)
结构类包含以下几种设计模式:
- 适配器模式-Adapter Pattern:将不能直接使用或者使用复杂的东西,变成能直接使用或使用方便的东西,例如:电源适配器,将220V电转换为200V电。
- 桥接模式-Bridge Pattern:抽象(定义)和实现分离。
- 组合模式-Composite Pattern:用于把一组相似的对象当作一个单一的对象,组合模式依据树形结构来组合对象,用来表示部分与整体层次。
- 装饰者模式-Decorator Pattern:动态的将新功能附加到对象上。
- 外观模式-Facade Pattern:为子系统中的一组接口提供统一的界面,这个接口使得子系统更容易使用。
- 享元模式-Flyweight Pattern:对象复用(常量池,连接池),重点在于复用而不是内部状态。
- 代理模式-Proxy Pattern:代理对象可以在客户端和目标对象之间起到中介作用,对目标对象起到一定的保护。
2.3 行为模式(Behavioral Patterns)
行为类包含以下几种设计模式:
- 责任链模式-Chain of Responsibility Pattern:如果一个对象不能处理当前请求,则将请求转发(传递)给下一个接收者。
- 命令模式-Command Pattern:将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分离。
- 解释器模式-Interpreter Pattern:实现一个表达式接口,用于解释一个特定的上下文。
- 迭代器模式-Iterator Pattern:提供一种方法,顺序访问一个聚合对象中各个元素,且无需暴露该对象的内部结构。
- 中介模式-Mediator Pattern:降低多个对象和类之间的通信复杂度。
- 备忘录模式-Memento Pattern:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。
- 观察者模式-Observer Pattern:当一个对象的状态发生改变时,会自动通知依赖它的对象做出反应。
- 状态模式-State Pattern:允许对象在内部状态发生改变时改变它的行为。
- 策略模式-Strategy Pattern:利用面向对象的多态特点,引用的是抽象类,当实际调用的时候,是被调用者是该对象的实体子类。
- 模版方法模式-Template Methods Pattern:定义一个操作中的算法骨架,将一些步骤延迟到子类中。
- 访问者模式-Visitor Pattern:为数据结构中的每个元素提供多种访问方式。
三、设计模式全图
23种设计模式分类归纳如下:
评论区