博客
关于我
JAVA设计模式总结之23种设计模式
阅读量:363 次
发布时间:2019-03-04

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

设计模式概述与应用

设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的代码设计经验的总结。其核心目标在于解决常见的软件开发问题,提高代码的可重用性和可维护性。

设计模式的分类

设计模式主要可分为三大类:

  • 创建型模式:解耦对象的实例化过程。常见的包括工厂模式、建造者模式等。
  • 结构型模式:将类或对象结合在一起形成更大的结构,如适配器模式、桥接模式等。
  • 行为型模式:定义类或对象之间的交互方式,划分责任和算法,如策略模式、观察者模式等。
  • 23种设计模式概述

    创建型模式

  • 工厂模式:通过工厂类创建对象,统一处理对象的创建过程。
  • 建造者模式:将对象的构建过程封装,支持按步骤构造复杂对象。
  • 原型模式:通过复制现有实例来创建新实例,减少资源消耗。
  • 对象池模式:管理对象的生命周期,优化资源使用效率。
  • 行为型模式

  • 访问者模式:在不改变数据结构的前提下,增加对一组对象的操作。
  • 模板模式:定义算法结构,延迟部分实现到子类。
  • 策略模式:封装一系列算法,支持动态替换。
  • 状态模式:允许对象在状态改变时改变其行为。
  • 观察者模式:建立对象间的一对多依赖关系。
  • 备忘录模式:保存和恢复对象内部状态。
  • 中介者模式:用中介对象封装对象交互。
  • 命令模式:将操作请求封装为对象,便于参数化。
  • 访问者模式:动态增加对象操作功能。
  • 责任链模式:解耦请求发送者和接收者。
  • 迭代器模式:提供一种遍历聚合对象元素的方法。
  • 结构型模式

  • 适配器模式:将一个类的接口转换为另一个接口。
  • 桥接模式:分离抽象部分和实现部分,支持独立扩展。
  • 组合模式:将对象组合成树形结构表示“部分-整体”关系。
  • 装饰模式:动态添加功能,扩展对象行为。
  • 外观模式:对外提供统一接口,简化子系统访问。
  • 亨元模式:通过共享技术支持细粒度对象。
  • 桥接模式:分离抽象与实现,支持独立演化。
  • 关键点总结

    • 单例模式:确保某个类仅有一个实例。
    • 工厂方法:定义对象创建接口,子类决定实例化。
    • 抽象工厂:创建对象家族,统一处理相关对象。
    • 建造者模式:封装构建步骤,支持任意复杂对象。
    • 原型模式:优化资源利用,减少对象创建开销。
    • 适配器模式:接口转换,支持不同系统间兼容。
    • 组合模式:层次化结构管理,支持灵活组合。
    • 装饰模式:动态功能扩展,保持对象一致性。
    • 外观模式:简化接口,降低使用门槛。
    • 桥接模式:解耦接口与实现,支持独立开发。

    设计模式为软件开发提供了丰富的经验和解决方案,帮助开发者更好地应对复杂问题,提升系统设计质量。通过合理应用这些模式,可以显著提高代码的可维护性和扩展性,是每个开发者不可或缺的工具。

    转载地址:http://zder.baihongyu.com/

    你可能感兴趣的文章
    PYTHON基础:如何阅读N个整数,直到#39;
    查看>>
    Python基础:11变量作用域和闭包
    查看>>
    Python基础: with模式和__enter__ 和 __exit__
    查看>>
    Python基础(7)--函数
    查看>>
    Python基础部分-while循环,格式化输出
    查看>>
    Python基础语法:顺序语句结构
    查看>>
    Python基础语法:理解代码与写代码
    查看>>
    Python基础语法:条件和分支
    查看>>
    Python基础语法:基本数据类型(数字类型和布尔类型)
    查看>>
    Python基础语法:基本数据类型(列表)
    查看>>
    Python基础语法:内置函数
    查看>>
    Python基础语法:你不得不知的几种变量类型
    查看>>
    Python基础语法教程,零基础入门到精通,看完这一篇就够了
    查看>>
    Python基础语法与执行脚本的3种方式
    查看>>
    python基础语法
    查看>>
    python基础语法
    查看>>
    python系列【仅供参考】:python测试开发基础---multiprocessing.Pool
    查看>>
    Python基础综合练习
    查看>>
    Python基础练习之一输出10000以内的阿姆斯特朗数
    查看>>
    Python基础系列讲解—动态类型语言的特点
    查看>>