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

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

设计模式概述与应用

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

设计模式的分类

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

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

    创建型模式

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

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

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

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

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

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

    你可能感兴趣的文章
    Python制作进度条,原来有这么多方法
    查看>>
    Python制作简单的学生成绩管理系统
    查看>>
    python制作甘特图的基本知识(附Demo)
    查看>>
    python制作一个简单的服务器,【Python】 做一个简单的 http 服务器
    查看>>
    Python到底能做什么?它的优点在哪?
    查看>>
    python利用pytorch库导出图像分割算子
    查看>>
    python利用pyshark监听网卡来抓包其中pyshark中摸索的一些可用参数
    查看>>
    python利用excel分析过杀漏失
    查看>>
    python判断汉字数目
    查看>>
    python判断文件是空的,如果是空的,就删除
    查看>>
    python判断密码是否正确_python密码判断是否符合要求的方法
    查看>>
    python判断字符串包含中文_Python 判断字符串是否包含中文
    查看>>
    python删除第一行_Python 乱码指北:一行删掉根目录
    查看>>
    Python删除列表元素的三种方法
    查看>>
    python初步学习-python数据类型-集合(set)
    查看>>
    python列表生成字典_Python中将字典转换为列表的方法
    查看>>
    python列表对应元素合并为列表及判断一个列表是几维
    查看>>
    python列表去重复后按照顺序_从包含不可共元素的Python列表中删除重复元素,同时保留顺序?...
    查看>>
    python列表前几个_python之列表
    查看>>
    python列表元组
    查看>>