概念 用统一的方式来处理单个对象和一组对象 无论是一个元素,还是一组元素,都用同一套接口、一致的方式去操作 应用场景 当多种对象之间出现了树形嵌套关系,为每一种对象编写一套操作接口过于复杂,使用组合模…
概念 它通过将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦 应用场景 1)当出现多对多业务场景时,使用桥接模式可以各自实现每一部分,不会…
概念 为复杂的子系统提供一个统一的对外接口,通过这个接口,能更方便、更高效地访问这些子系统,而不需要关心它们内部的复杂逻辑。 应用效果 基本结构 1)外观类(Facade):对外提供统一接口,封…
概念 动态地为对象添加额外的功能,而不影响原对象 包装而非继承,扩展而非修改 应用场景 对于已经实现基本功能类,出现添加新功能的需求时,使用装饰模式可以在不修改原代码的基础上添加新功能 适合功能经常…
概念 给某个对象提供一个代理对象,并由代理对象来控制对这个对象的访问。 代理对象会额外提供各类访问控制操作,达到增强对象的效果 应用场景 对于过于复杂的对象,访问操作非常复杂,这时候需要代理模式封装这…
概念 通过创建一个适配器类,将一个接口转换成客户端所期望的另一个接口 应用场景 适配器模式的目的是为了应对不同类或系统间接口不兼容的问题 基本结构 1)目标接口(Target):客户端希望使用的接口 …
概念 用于通过复制现有的对象来创建新对象,而不是通过“new”关键字来直接实例化 简而言之,原型模式让我们能够在已有对象的基础上创建新对象。它依赖于“克隆”已有对象的状态,从而减少了重复构建相同对象的…
概念 将一个复杂对象的创建过程拆解成多个小步骤,然后一步步构建出来。定义各种建造者或通过指挥者指挥建造者按照不同方式建造出各种产品 应用场景 1)当需要生产一种产品,由多个部分或步骤构成,且不同变种的…
概念 抽象工厂模式 提供一个“超级工厂”的接口,专门用来创建一整组互相关联的产品对象,而且不用我们关心这些产品具体是怎么实现的 简单工厂、工厂方法、抽象工厂的区别 1)简单工厂 一个工厂类负责创建所有…
概念 旨在定义一个用于创建对象的接口,但将具体的实例化工作放到子类中去完成。换句话说,工厂方法模式通过让子类决定实例化哪个具体类,从而实现了对象创建的灵活性和可扩展性。 用通俗的话来说就是工厂方法模…