Java设计模式 – 四大类型

设计模式 -- 四大类型

设计模式(Design pattern)是重构解决方案

根据书Design Patterns -- Elements of Reusable Object-Oriented Software(中文译名:设计模式 -- 可复用的面向对象软件元素) 中和 J2EE 所提到的,总共有 23 +8 种设计模式

这些模式可以分为四大类:创建型模式(Creational Patterns)、结构型模式(Structural

Patterns)、行为型模式(Behavioral Patterns)、J2EE 设计模式

创建型模式

这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象

这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活

包括

  1. 工厂模式(FactoryPattern)
  2. 抽象工厂模式(AbstractFactoryPattern)
  3. 单例模式(SingletonPattern)
  4. 建造者模式(BuilderPattern
  5. 原型模式(PrototypePattern)

结构型模式

这些设计模式关注类和对象的组合

继承的概念被用来组合接口和定义组合对象获得新功能的方式

包括

  1. 适配器模式(AdapterPattern)
  2. 桥接模式(BridgePattern)
  3. 过滤器模式(Filter、CriteriaPattern)
  4. 组合模式(CompositePattern)
  5. 装饰器模式(DecoratorPattern)
  6. 外观模式(FacadePattern)
  7. 享元模式(FlyweightPattern)
  8. 代理模式(ProxyPattern)

行为型模式

这些设计模式特别关注对象之间的通信

包括

  1. 责任链模式(ChainofResponsibilityPattern)
  2. 命令模式(CommandPattern)
  3. 解释器模式(InterpreterPattern)
  4. 迭代器模式(IteratorPattern)
  5. 中介者模式(MediatorPattern)
  6. 备忘录模式(MementoPattern)
  7. 观察者模式(ObserverPattern)
  8. 状态模式(StatePattern)
  9. 空对象模式(NullObjectPattern)
  10. 策略模式(StrategyPattern)
  11. 模板模式(TemplatePattern)
  12. 访问者模式(VisitorPattern

J2EE模式

这些设计模式特别关注表示层

这些模式是由 Sun Java Center 鉴定的

包括:

  1. MVC模式(MVCPattern)
  2. 业务代表模式(BusinessDelegatePattern)
  3. 组合实体模式(CompositeEntityPattern)
  4. 数据访问对象模式(DataAccessObjectPattern)
  5. 前端控制器模式(FrontControllerPattern)
  6. 拦截过滤器模式(InterceptingFilterPattern)
  7. 服务定位器模式(ServiceLocatorPattern)
  8. 传输对象模式(TransferObjectPattern)

下面用一个图片来整体描述一下设计模式之间的关系:

相关推荐
泡泡以安14 分钟前
【Android逆向工程】第3章:Java 字节码与 Smali 语法基础
android·java·安卓逆向
毕设源码-朱学姐6 小时前
【开题答辩全过程】以 工厂能耗分析平台的设计与实现为例,包含答辩的问题和答案
java·vue.js
Spring AI学习7 小时前
Spring AI深度解析(9/50):可观测性与监控体系实战
java·人工智能·spring
java1234_小锋8 小时前
Spring IoC的实现机制是什么?
java·后端·spring
xqqxqxxq9 小时前
背单词软件技术笔记(V2.0扩展版)
java·笔记·python
消失的旧时光-19439 小时前
深入理解 Java 线程池(二):ThreadPoolExecutor 执行流程 + 运行状态 + ctl 原理全解析
java·开发语言
哈哈老师啊9 小时前
Springboot学生综合测评系统hxtne(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
java·数据库·spring boot
4311媒体网9 小时前
帝国cms调用文章内容 二开基本操作
java·开发语言·php
zwxu_9 小时前
Nginx NIO对比Java NIO
java·nginx·nio
可观测性用观测云10 小时前
Pyroscope Java 接入最佳实践
java