
本文共 2546 字,大约阅读时间需要 8 分钟。
设计模式基础
设计模式主要基于的面向对象设计的原则
在面向对象编程中,设计模式的核心原则包括:
设计模式用途
设计模式在软件开发中具有以下用途:
设计模式类型
设计模式主要分为以下几类:
创造设计模式
工厂模式
工厂模式通过引入工厂接口和具体工厂实现,实现了对对象创建逻辑的抽象化。以下是实现步骤:
抽象工厂模式
抽象工厂模式扩展了工厂模式,支持多个工厂的同时使用。其特点是:
- 接口负责创建相关对象的工厂。
- 每个生成的工厂可按照工厂模式提供对象。
单例模式
单例模式确保一个类只能创建一个对象。其特点是:
- 类本身负责创建唯一的实例。
- 提供访问该唯一实例的方法,避免直接使用new操作符。
原型模式
原型模式用于克隆对象,特点是:
- 实现了一个原型接口。
- 只创建当前对象的克隆,而非直接复制。
Builder模式
Builder模式用于逐步构建复杂对象,其特点是:
- 构造器独立于其他对象,逐步添加属性。
- 最终返回构建的对象。
结构设计模式
适配器模式
适配器模式通过桥梁类连接两个不兼容的接口,特点是:
- 提供一个单独的类,作为不兼容接口的桥梁。
- 支持两个系统间的数据转换。
桥接模式
桥接模式将抽象与实现分离,特点是:
- 充当中介角色,解耦具体实现。
- 使上层系统无需关心具体实现细节。
组合模式
组合模式通过树状结构管理多个对象,特点是:
- 将一组对象以树结构呈现。
- 支持部分和整体操作。
过滤器模式
过滤器模式用于对对象集合进行多种条件筛选,特点是:
- 支持多种条件过滤。
- 逻辑连接可以通过解耦方式实现。
装饰者模式
装饰者模式允许向对象动态添加功能,特点是:
- 不改变对象的结构。
- 通过修饰器类包装原始对象。
- 保持方法签名完整。
外观模式
外观模式简化复杂系统的使用,特点是:
- 隐藏系统复杂性。
- 提供统一接口。
- 委托调用内部系统类。
享元模式
享元模式通过重用已存在对象来减少资源消耗,特点是:
- 存储已存在的对象副本以供重用。
- 只有在找不到匹配对象时才创建新对象。
业务代理模式
业务代理模式用于解耦表示层和业务层,特点是:
- 提供统一入口点。
- 支持远程查找和业务服务。
- 包括客户端、业务代理、查找服务和业务服务等角色。
行为设计模式
责任链模式
责任链模式通过链式结构处理请求,特点是:
- 请求的处理分离。
- 每个处理器都包含对下一个处理器的引用。
- 请求自动传递给下一个处理器。
命令模式
命令模式将操作封装为命令对象,特点是:
- 数据驱动设计。
- 命令作为操作包装。
- 调用器查找适当的处理对象。
解释器模式
解释器模式用于评估和计算表达式,特点是:
- 提供评估表达式的接口。
- 解释器负责在特定上下文中解释表达式。
迭代器模式
迭代器模式提供高效访问集合元素的方法,特点是:
- 以顺序方式访问元素。
- 不暴露集合的底层结构。
调解者模式
调解者模式减少多个对象间的通信复杂性,特点是:
- 提供中介类。
- 支持松散耦合设计。
- 简化多个对象间的通信。
备忘录模式
备忘录模式用于恢复对象的状态,特点是:
- 记录对象的状态。
- 提供恢复方法。
- 方便快速恢复。
观察者模式
观察者模式管理对象间的一对多关系,特点是:
- 支持动态订阅和通知。
- 观察者可以随时添加或移除。
- 主体对象在状态改变时通知所有观察者。
状态模式
状态模式通过状态对象管理对象的行为变化,特点是:
- 状态对象负责行为变化。
- 上下文对象管理当前状态。
- 支持状态切换。
策略模式
策略模式允许在运行时更改算法,特点是:
- 策略对象负责具体行为。
- 上下文对象根据情况选择策略。
- 支持动态策略切换。
模板模式
模板模式通过抽象类实现代码重用,特点是:
- 提供操作的模板。
- 子类可根据需要重写模板方法。
- 调用方式与抽象类一致。
访问者模式
访问者模式允许动态改变元素的操作方式,特点是:
- 元素接受访问者对象。
- 访问者可以根据需要定义操作。
- 支持灵活的操作扩展。
空对象模式
空对象模式避免使用null对象,特点是:
- 创建一个抽象类。
- 提供默认行为。
- 替换null对象检查。
MVC 模式
MVC模式通过三层结构管理应用,特点是:
- 模型(Model):数据对象或Java POJO。
- 视图(View):数据的可视化层。
- 控制器(Controller):管理数据流,保持视图与模型分离。
组合实体模式
组合实体模式用于EJB持久化,特点是:
- 组合实体管理依赖对象。
- 自动更新粗粒度对象。
- 包括组合实体、粗粒实体、依赖对象和策略等角色。
数据访问对象模式
数据访问对象模式分离数据访问逻辑,特点是:
- 数据访问对象接口定义标准操作。
- 数据访问对象具体类实现数据源获取。
- 模型对象包含数据存储逻辑。
前端控制器模式
前端控制器模式提供集中式请求处理,特点是:
- 单一处理程序处理所有请求。
- 执行身份验证、授权等预处理。
- 将请求传递给相应处理器。
拦截过滤器模式
拦截过滤器模式通过过滤器链管理请求处理,特点是:
- 过滤器链执行预处理和后处理。
- 支持多个过滤器的链式调用。
- 过滤器管理器统一管理过滤器。
服务定位模式
服务定位模式通过JNDI查找服务,特点是:
- 服务通过JNDI服务器注册。
- 上下文提供服务查找引用。
- 服务定位器提供单一访问点。
- 客户端通过ServiceLocator调用服务。
传输对象模式
传输对象模式用于数据传输,特点是:
- 业务对象填充传输对象。
- 传输对象仅提供属性设置/获取。
- 客户端请求或发送传输对象。
发表评论
最新留言
关于作者
