代码拉取完成,页面将自动刷新
尚硅谷Java设计模式(图解+框架源码剖析)学习笔记
**整理不易,还望各位看官一键三连 **
**整理不易,还望各位看官一键三连 **
**整理不易,还望各位看官一键三连 **
下面开始吧~
境界大多是相通的
:person_fencing: 剑魔独孤求败的五层剑法境界
清代文学家王国维在《人间词话》提出的读书三层境界
设计模式是为了让程序(软件),具有更好的
分类 | 设计模式 | 举例 | 源码 | 优点 | 缺点 |
---|---|---|---|---|---|
创建型 | 单例模式 | Singleton |
JDK 中java.lang.Runtime
|
节省资源,提高性能 | |
~ | 工厂模式 | 披萨店 | JDK 中Calendar
|
统一管理,便于维护 | |
~ | 原型模式 | 克隆羊 | Spring 中ApplicationContext
|
简化过程,提高效率 | 复杂;违背 OCP |
~ | 建造者模式 | 盖房子 | JDK 中StringBuilder
|
解耦创建过程 | |
结构型 | 适配器模式 | 插座 | SpringMVC 中HandlerAdapter
|
兼容性 | |
~ | 桥接模式 | 手机 | JDBC 中Driver
|
分离抽象与实现 | |
~ | 装饰者模式 | 星巴克咖啡 | JDK 中FilterlnputStream
|
动态扩展功能 | |
~ | 组合模式 | 学校院系 | JDK 中HashMap
|
明确部分与整体层次 | |
~ | 外观模式 | 影院管理 | MyBatis 中Configuration
|
屏蔽细节,简化操作 | 过多不利于维护 |
~ | 享元模式 | 网站展示 | JDK 中Integer
|
降低内存,提高效率 | 复杂 |
~ | 代理模式 | 教师教书 | JDK 中Proxy
|
扩展功能,更加安全 | |
行为型 | 模板模式 | 豆浆制作 | Spring 中AbstractApplicationContext
|
统一算法,代码复用 | 过多不利于维护 |
~ | 命令模式 | 智能生活 | Spring 中JdbcTemplate
|
解耦请求发起与执行 | 复杂 |
~ | 访问者模式 | 测评系统 | 解耦数据结构与操作 | 违背迪米特、依赖倒转 | |
~ | 迭代器模式 | 学校院系 | JDK 中ArrayList
|
统一遍历 | 过多不利于维护 |
~ | 观察者模式 | 天气预报 | JDK 中Observable
|
动态添加三方 | |
~ | 中介者模式 | 智能家庭 | 封装交互 | 复杂 | |
~ | 备忘录模式 | 游戏角色状态恢复 | 方便恢复状态 | 占用资源,消耗内存 | |
~ | 解释器模式 | 四则运算 | Spring 中SpelExpressionParser
|
可扩展性 | 调试复杂;效率低 |
~ | 状态模式 | APP 抽奖 | 借贷平台 | 分离状态 | 过多不利于维护 |
~ | 策略模式 | 鸭子 | JDK 中Comparator
|
分离不变与变化 | 过多不利于维护 |
~ | 职责链模式 | 采购审批 | SpringMVC 中HandlerExecutionChain
|
分离请求与处理 | 调试复杂;影响性能 |
整理难免有误,欢迎大家批评指正!
署名 4.0 国际 (CC BY 4.0)。您可以自由地:共享 — 在任何媒介以任何形式复制、发行本作品;演绎 — 修改、转换或以本作品为基础进行创作;在任何用途下,甚至商业目的。只要你遵守许可协议条款,许可人就无法收回你的这些权利。惟须遵守下列条件:署名 — 您必须给出适当的署名,提供指向本许可协议的链接,同时标明是否(对原始作品)作了修改。您可以用任何合理的方式来署名,但是不得以任何方式暗示许可人为您或您的使用背书。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。