博客
关于我
设计模式——概述
阅读量:550 次
发布时间:2019-03-09

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

掌握设计模式的核心思想与实践指南

设计模式基础

设计模式是程序员在开发软件过程中,总结的最佳实践经验。它们是解决常见软件设计问题的通用方案,旨在提高系统的可维护性、通用性和扩展性。

设计模式的本质优势在于通过遵循标准化的模式设计,可以降低软件复杂度,同时提高代码的质量。以下是一些常见的设计模式类型,每一种模式都能解决特定类型的问题。

设计模式分类

创 建 型模式

单例模式:

  • 通过静态方法确保一个类内始终只有一个实例。
  • 典型场景:数据库连接池中单例实例的管理。

抽象工厂模式:

  • 提供统一的接口,客户端按需调用不同实现。
  • 典型场景:切换不同配置下的产品生产。

原型模式:

  • 创建复杂对象时,通过拷贝已有实例来节省资源。
  • 典型场景:创建大量对象时的性能优化。

建造者模式:

  • 将对象的构建过程抽象,为不同的构建逻辑提供扩展空间。
  • 典型场景:复杂对象的业务流程自动化。

工厂方法模式:

  • 由工厂类决定对象的创建类型。
  • 典型场景:不同的产品线管理。

结 构 型模式

适配器模式:

  • 实现接口转换,解决不同组件的兼容性问题。
  • 典型场景:系统 Middleware 与旧系统集成。

桥接模式:

  • 分离接口和实现,减少直接耦合。
  • 典型场景:持久化层与业务逻辑分离。

装饰模式:

  • 细节性的功能增强,通过动态组合方式实现。
  • 典型场景:加密功能的动态切换。

组合模式:

  • 组合多个对象,完成复杂任务。
  • 典型场景:菜单单项与多选项的组合管理。

外观模式:

  • 提供统一的入口接口,抽象封装内部细节。
  • 典型场景:复杂组件的简化使用。

享元模式:

  • 通过共享实例提高资源利用效率。
  • 典型场景:资源密集型场景下的内存管理。

代理模式:

  • 提供额外功能或控制访问权限。
  • 典型场景:日志记录与访问控制。

行 为 型模式

模板方法模式:

  • 提供算法框架,子类可自定义实现。
  • 典型场景:通用业务逻辑的多态化实现。

命令模式:

  • 调用方法的参数化设计,支持 undo 功能。
  • 典型场景:事务处理的回滚控制。

访问者模式:

  • 遍历对象树时定义操作规则。
  • 典型场景:UI 组件的批量处理。

迭代器模式:

  • 提供统一的遍历接口,符合同一化访问逻辑。
  • 典型场景:集合数据的安全迭代访问。

观察者模式:

  • 发生变化的对象通知多个关注者。
  • 典型场景:事件发布订阅机制实现。

中介者模式:

  • 封装对象之间的交互,解除直接耦合。
  • 典型场景:复杂泛块式架构的划分。

备忘录模式:

  • 在对象生命周期外部保存内部状态。
  • 典型场景:数据恢复能力的增强。

解释器模式:

  • 解析明确的语言文法和语法。
  • 典型场景:自定义脚本解析系统。

状态模式:

  • 对于状态变化设计灵活的行为控制。
  • 典型场景:用户权限状态机制设计。

策略模式:

  • 提供不同算法的封装选择。
  • 典型场景:行为控制多算法选择。

职责链模式:

  • 通过链式结构解除直接调用耦合。
  • 典型场景:任务流程自动转发处理。

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

你可能感兴趣的文章
java教研室采购管理系统(ssm)
查看>>
java教职工离兰返兰行程报备系统(ssm)
查看>>
java教育培训系统(ssm)
查看>>
java教育机构管理(ssm)
查看>>
"头脑的自行车" 是什么玩意?
查看>>
java教育质量测评系统(ssm)
查看>>
java教育辅导班信息网(ssm)
查看>>
java散酒营销系统(ssm框架毕业设计)
查看>>
java文件上传带进度条_java文件上传带进度条的
查看>>
Java新特性:数据类型可以扔掉了?
查看>>
java旅客行程推荐系统(ssm)
查看>>
java旅店管理系统(ssm)
查看>>
java旅拍平台(ssm)
查看>>
620道 Python开发工程师面试题合集
查看>>
Ansible Ad-hoc 命令详解
查看>>
APR学习失败问题定位排查
查看>>
BitLocker驱动器加密概述
查看>>
Burp Suite使用进阶
查看>>
BurpSuite实战九之使用Burp Repeater
查看>>
BurpSuite实战八之使用Burp Intruder
查看>>