桥接模式(Bridge Pattern)是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合的方式,将一个对象的不同维度的变化分离开来,避免了过多的继承关系导致的类爆炸问题。
“桥接”解析“桥接”即为: 通过一个 “桥梁” 将两个独立的维度连接起来,使其两端能够独立发展变化。这一比喻类似于现实中的桥梁,将两岸(抽象与实现)连接,同时允许两岸各自发展。
...
迭代器模式(Iterator Pattern)是一种行为设计模式,它提供了一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。借助迭代器模式,你能在不了解集合底层实现的情况下遍历集合中的元素。
迭代器模式的构成
抽象迭代器(Iterator):定义了访问和遍历元素的接口,包含诸如next()、hasNext()等方法。
具体迭代器(Concrete Iterator):实...
组合模式(Composite Pattern)是一种结构型设计模式,它允许你将对象组合成树形结构以表示 “部分 - 整体” 的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。
组合模式的构成
抽象组件(Component):它是组合中所有对象的抽象接口,定义了叶子节点和组合节点的公共操作。
叶子组件(Leaf):它是组合中的最小单位,没有子节点,实现了抽象组件的所有操作。...
备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不破坏对象封装性的前提下,捕获并保存一个对象的内部状态,以便后续可以将该对象恢复到之前保存的状态。
备忘录模式的构成
发起人(Originator):创建包含当前内部状态的备忘录对象,也能使用备忘录对象恢复其内部状态。
备忘录(Memento):用于存储发起人的内部状态,且除发起人外,其他对象不能访问该状态。
管理者...
适配器模式(Adapter Pattern)是一种结构型设计模式,其主要作用是让原本因接口不兼容而无法一起工作的类能够协同工作。它就像一个转换器,将一个类的接口转换成客户希望的另一个接口。
适配器模式的构成
目标接口(Target):定义了客户端期望使用的接口,是客户端最终调用的接口。
适配者类(Adaptee):已存在的、需要被适配的类,它有自己的接口和实现,但与目标接口不兼容。
适配...
原型模式(Prototype Pattern)是一种创建型设计模式,它允许通过复制现有的对象来创建新对象,而不是从头开始创建。这种模式适用于创建对象的成本较高,或者创建过程复杂的场景。在原型模式中,有一个原型对象,其他对象可以通过克隆这个原型对象来创建。
原型模式的常用应用场景
对象创建成本高:如数据库连接、网络连接等对象的创建,克隆已有对象比重新创建更高效。
避免重复初始化:当对象的初...
状态模式(State Pattern)属于行为设计模式,其核心在于允许对象在内部状态发生改变时变更自身的行为,仿佛对象更改了所属的类。该模式将状态相关的行为封装在不同的状态类中,并且让对象在运行时可以动态切换状态。
状态模式的构成
上下文(Context):它持有一个状态对象的引用,定义了客户端感兴趣的接口,并且负责状态的切换。
抽象状态(State):定义了一个所有具体状态类都要实现的...
观察者模式(Observer Pattern)又被称为发布-订阅模式(Publish-Subscribe Pattern),是一种行为设计模式,它定义了对象间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都会得到通知并自动更新。在这个模式里,被观察的对象称为主题(Subject),依赖于主题的对象称为观察者(Observer)
观察者模式的主要构成1. 抽象主题(Subj...
建造者模式(Builder Pattern)是一种创建型设计模式,它将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。该模式允许你逐步构建一个复杂对象,通过使用多个简单的步骤来创建最终对象,而不是一次性构建整个对象。
建造者模式的构成
产品(Product):要构建的复杂对象。
抽象建造者(Abstract Builder):定义了构建产品各个部分的抽象接口。
具体建...
外观模式(Facade Pattern)属于结构型设计模式,它为子系统中的一组接口提供了一个统一的高层接口,使得子系统更容易使用。此模式通过创建一个外观类,将复杂的子系统封装起来,客户端只需与外观类交互,而无需了解子系统内部的具体实现。
外观模式的结构
外观角色(Facade):这是外观模式的核心,它了解各个子系统的功能和职责,负责将客户端的请求委派给相应的子系统进行处理。外观角色通常会...