Java 设计模式
发布日期:2021-05-08 06:30:24 浏览次数:19 分类:精选文章

本文共 2546 字,大约阅读时间需要 8 分钟。

设计模式基础

设计模式主要基于的面向对象设计的原则

在面向对象编程中,设计模式的核心原则包括:

  • 接口优先:程序可以通过接口与实现无关的对象交互。
  • 继承与组合:通过继承继承行为,通过组合实现复杂的行为组合。
  • 设计模式用途

    设计模式在软件开发中具有以下用途:

  • 提供通用平台:通过抽象接口和组件化设计,开发者可以快速构建高效的应用系统。
  • 遵循最佳实践:设计模式为开发者提供了一套成熟的解决方案,避免了重复劳动和代码冗余。
  • 设计模式类型

    设计模式主要分为以下几类:

  • 创造模式:通过工厂、单例等模式隐藏对象的创建逻辑。
  • 结构模式:关注类和对象的组成,通过继承和组合实现复杂的行为组合。
  • 行为模式:关注对象之间的通信和协作。
  • J2EE 模式:为Java平台提供了一套标准化的设计模式框架。
  • 创造设计模式

    工厂模式

    工厂模式通过引入工厂接口和具体工厂实现,实现了对对象创建逻辑的抽象化。以下是实现步骤:

  • 创建一个接口,定义创建对象的方法。
  • 创建实现该接口的具体类。
  • 创建工厂类,根据给定信息生成具体对象。
  • 使用工厂接口通过传递类型信息获取所需对象。
  • 验证生成的对象是否符合预期。
  • 抽象工厂模式

    抽象工厂模式扩展了工厂模式,支持多个工厂的同时使用。其特点是:

    • 接口负责创建相关对象的工厂。
    • 每个生成的工厂可按照工厂模式提供对象。

    单例模式

    单例模式确保一个类只能创建一个对象。其特点是:

    • 类本身负责创建唯一的实例。
    • 提供访问该唯一实例的方法,避免直接使用new操作符。

    原型模式

    原型模式用于克隆对象,特点是:

    • 实现了一个原型接口。
    • 只创建当前对象的克隆,而非直接复制。

    Builder模式

    Builder模式用于逐步构建复杂对象,其特点是:

    • 构造器独立于其他对象,逐步添加属性。
    • 最终返回构建的对象。

    结构设计模式

    适配器模式

    适配器模式通过桥梁类连接两个不兼容的接口,特点是:

    • 提供一个单独的类,作为不兼容接口的桥梁。
    • 支持两个系统间的数据转换。

    桥接模式

    桥接模式将抽象与实现分离,特点是:

    • 充当中介角色,解耦具体实现。
    • 使上层系统无需关心具体实现细节。

    组合模式

    组合模式通过树状结构管理多个对象,特点是:

    • 将一组对象以树结构呈现。
    • 支持部分和整体操作。

    过滤器模式

    过滤器模式用于对对象集合进行多种条件筛选,特点是:

    • 支持多种条件过滤。
    • 逻辑连接可以通过解耦方式实现。

    装饰者模式

    装饰者模式允许向对象动态添加功能,特点是:

    • 不改变对象的结构。
    • 通过修饰器类包装原始对象。
    • 保持方法签名完整。

    外观模式

    外观模式简化复杂系统的使用,特点是:

    • 隐藏系统复杂性。
    • 提供统一接口。
    • 委托调用内部系统类。

    享元模式

    享元模式通过重用已存在对象来减少资源消耗,特点是:

    • 存储已存在的对象副本以供重用。
    • 只有在找不到匹配对象时才创建新对象。

    业务代理模式

    业务代理模式用于解耦表示层和业务层,特点是:

    • 提供统一入口点。
    • 支持远程查找和业务服务。
    • 包括客户端、业务代理、查找服务和业务服务等角色。

    行为设计模式

    责任链模式

    责任链模式通过链式结构处理请求,特点是:

    • 请求的处理分离。
    • 每个处理器都包含对下一个处理器的引用。
    • 请求自动传递给下一个处理器。

    命令模式

    命令模式将操作封装为命令对象,特点是:

    • 数据驱动设计。
    • 命令作为操作包装。
    • 调用器查找适当的处理对象。

    解释器模式

    解释器模式用于评估和计算表达式,特点是:

    • 提供评估表达式的接口。
    • 解释器负责在特定上下文中解释表达式。

    迭代器模式

    迭代器模式提供高效访问集合元素的方法,特点是:

    • 以顺序方式访问元素。
    • 不暴露集合的底层结构。

    调解者模式

    调解者模式减少多个对象间的通信复杂性,特点是:

    • 提供中介类。
    • 支持松散耦合设计。
    • 简化多个对象间的通信。

    备忘录模式

    备忘录模式用于恢复对象的状态,特点是:

    • 记录对象的状态。
    • 提供恢复方法。
    • 方便快速恢复。

    观察者模式

    观察者模式管理对象间的一对多关系,特点是:

    • 支持动态订阅和通知。
    • 观察者可以随时添加或移除。
    • 主体对象在状态改变时通知所有观察者。

    状态模式

    状态模式通过状态对象管理对象的行为变化,特点是:

    • 状态对象负责行为变化。
    • 上下文对象管理当前状态。
    • 支持状态切换。

    策略模式

    策略模式允许在运行时更改算法,特点是:

    • 策略对象负责具体行为。
    • 上下文对象根据情况选择策略。
    • 支持动态策略切换。

    模板模式

    模板模式通过抽象类实现代码重用,特点是:

    • 提供操作的模板。
    • 子类可根据需要重写模板方法。
    • 调用方式与抽象类一致。

    访问者模式

    访问者模式允许动态改变元素的操作方式,特点是:

    • 元素接受访问者对象。
    • 访问者可以根据需要定义操作。
    • 支持灵活的操作扩展。

    空对象模式

    空对象模式避免使用null对象,特点是:

    • 创建一个抽象类。
    • 提供默认行为。
    • 替换null对象检查。

    MVC 模式

    MVC模式通过三层结构管理应用,特点是:

    • 模型(Model):数据对象或Java POJO。
    • 视图(View):数据的可视化层。
    • 控制器(Controller):管理数据流,保持视图与模型分离。

    组合实体模式

    组合实体模式用于EJB持久化,特点是:

    • 组合实体管理依赖对象。
    • 自动更新粗粒度对象。
    • 包括组合实体、粗粒实体、依赖对象和策略等角色。

    数据访问对象模式

    数据访问对象模式分离数据访问逻辑,特点是:

    • 数据访问对象接口定义标准操作。
    • 数据访问对象具体类实现数据源获取。
    • 模型对象包含数据存储逻辑。

    前端控制器模式

    前端控制器模式提供集中式请求处理,特点是:

    • 单一处理程序处理所有请求。
    • 执行身份验证、授权等预处理。
    • 将请求传递给相应处理器。

    拦截过滤器模式

    拦截过滤器模式通过过滤器链管理请求处理,特点是:

    • 过滤器链执行预处理和后处理。
    • 支持多个过滤器的链式调用。
    • 过滤器管理器统一管理过滤器。

    服务定位模式

    服务定位模式通过JNDI查找服务,特点是:

    • 服务通过JNDI服务器注册。
    • 上下文提供服务查找引用。
    • 服务定位器提供单一访问点。
    • 客户端通过ServiceLocator调用服务。

    传输对象模式

    传输对象模式用于数据传输,特点是:

    • 业务对象填充传输对象。
    • 传输对象仅提供属性设置/获取。
    • 客户端请求或发送传输对象。
    上一篇:利用 Python 实现一个购物车小程序
    下一篇:如何利用 U 盘制作系统启动盘?

    发表评论

    最新留言

    第一次来,支持一个
    [***.219.124.196]2025年04月15日 09时06分16秒