【Java】Java与GoF-23种设计模式
文章目录
- 设计模式概述
- GoF-23种设计模式
- 设计模式的分类
- 设计模式的原则
- 设计模式在JDK的部分体现
- Singleton
- Factory
- Abstract factory
- Adapter
- Composite
- Decorator
- Observer
- Others
- 设计模式的关系图
设计模式概述
设计模式(Design pattern)是一套可以反复使用的代码设计经验的总结。其目的是为了提高代码的可读性、可维护性。各种设计模式最核心的思想就是“适应变化”。
GoF-23种设计模式
GoF(Gang of Four)总结了23种设计模式,这也是我们一般提及的设计模式。
GoF提出的23种设计模式是对已有模式的整理、分类,为软件设计总结了宝贵的经验(这些设计经验可以被重用,但不是简单的代码重用)。
设计模式的分类
创建型(Creational) | 结构型(Structural) | 行为型(Behavioral) | |
---|---|---|---|
类 | 工厂模式(Factory Method) | 适配器模式(Adapter) |
解释器模式(Interpreter) 模板模式(Template) |
对象 |
抽象工厂模式(Abstract Factory) 建造者模式(Builder) 原型模式(Prototype) 单例模式(Singleton) |
适配器模式(Adapter) 桥接模式(Bridge) 组合模式(Composite) 装饰器模式(Decorator) 外观模式(Facade) 享元模式(Flyweight) 代理模式(Proxy) |
责任链模式(Chain of Responsibility) 命令模式(Command) 迭代器模式(Iterator) 中介者模式(Mediator) 备忘录模式(Memento) 观察者模式(Observer) 状态模式(State) 策略模式(Strategy) 访问者模式(Visitor) |
设计模式的原则
- 单一职责原则
要把功能尽可能的细分,每一个类应该只负责一块内容或只执行一个任务。那么怎么样才算达到单 一职责了呢,那就是当一个类仅有一个引起它变化的原因时 - 开放封闭原则
尽量不要去修改原有的类,但却可以扩展现有的功能 - 替换原则
子类必须能够替换它们的基类 - 依赖倒置原则
高层模块不应该依赖于低层模块,二者都应该依赖于抽象;抽象不应依赖于实现细节,实现细节应 该依赖于抽象 - 接口隔离原则
客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上
设计模式在JDK的部分体现
Singleton
- java.lang.Runtime#getRuntime()
- java.awt.Toolkit#getDefaultToolkit()
- java.awt.Desktop#getDesktop()
Factory
- java.lang.Class#newInstance()
- java.lang.Class#forName()
- java.lang.reflect.Array#newInstance()
- java.lang.reflect.Constructor#newInstance()
Abstract factory
- java.sql.DriverManager#getConnection()
- java.sql.Connection#createStatement()
Adapter
- javax.swing.JTable(TableModel)
- javax.swing.JList(ListModel)
- java.io.InputStreamReader(InputStream)
- java.io.OutputStreamWriter(OutputStream)
Composite
- java.awt.Container#add(Component)
- javax.swing.JComponent#add(Component)
Decorator
- java.io.BufferedInputStream(InputStream)
- java.io.DataInputStream(InputStream)
- java.io.BufferedOutputStream(OutputStream)
Observer
- java.util.EventListener
Others
《GoF-23种设计模式在Java核心类库中的应用》
设计模式的关系图
【Java】Java与GoF-23种设计模式相关推荐
- 追MM“23式”—— GOF 23种设计模式
追MM"23式" -- GOF 23种设计模式 创建型模式 1.FACTORY 2.BUILDER 3.FACTORY METHOD 4.PROTOTYPE 5.SINGLETON ...
- Java开发中的23种设计模式详解(转)
设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
- 【java】java开发中的23种设计模式详解
设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
- Java开发中的23种设计模式详解
设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于 ...
- GoF 23种设计模式中英文对照
https://blog.csdn.net/shuair/article/details/121884066 1.Singleton Pattern(单例模式) Ensure a class has ...
- GOF 23种设计模式比喻
==创建型模式== 1. =SIMPLE FACTORY= 打完篮球真累,正好边上有个小摊. "来杯可乐." "我要芬达." "一瓶矿泉水 ...
- java 23种设计模式详解
1. 软件设计模式意义 文章链接:http://c.biancheng.net/design_pattern/ 设计模式的本质是对面向对象设计原则运用,是对类的封装.继承和多态以及类的关联关系 ...
- 23种设计模式-个人笔记(二)
目录 五.23 种设计模式 1.单例模式 1.1.单例模式的定义与特点 1.2.单例模式的优点和缺点 1.3.单例模式的应用场景 1.4.单例模式的结构与实现 1.5.八种方式详解 1.6.单例模式在 ...
- 23种设计模式(一)
1. 软件设计模式意义 设计模式的本质是对面向对象设计原则运用,是对类的封装.继承和多态以及类的关联关系和组合关系的充分理解.优点: 可以提高程序员的思维能力.编程能力和设计能力 使程序更加标 ...
- 手把手教你23种设计模式
文章目录 相关知识 简单工厂模式(不属于GoF 23 种设计模式) 工厂方法模式 抽象工厂模式 单例模式 原型模式 建造者模式 代理模式 门面模式(外观模式) 装饰器模式 享元模式 组合模式(整体-部 ...
最新文章
- axios拦截器_78.1K 的 Axios 项目有哪些值得借鉴的地方
- 深入解读Python的unittest并拓展HTMLTestRunner
- 王者荣耀6月23服务器维护,王者荣耀6.23维护到什么时候?6月23日长枪掠火版本异常介绍...
- 985博导:如果符合这几条,你可能不适合读博!
- xamarin误删vEthernet(internal Ethernet Port Windows Phone Emulator) 网络设备的处理。
- 网络_检测公网端口是否开启
- Android中设置位移动画的停止
- python什么字体好看_10 款最佳编程字体
- [从零学习汇编语言] - 计算机发展历史
- 北斗时间周和GPS时间周计算,JAVA为例
- 无人机水平方向四环串级控制,竖直方向三环串级控制(2020.6.30备份)
- 重庆万州公交车坠江原因公布:乘客与司机激烈争执互殴致车辆失控
- ppt 计算机图标不见了,显示桌面图标不见了如何恢复.ppt
- Linux(入门基础):85---Linux单一计划任务(at服务、at、atq、atrm、batch命令)
- 制作MMORPG游戏需要储备哪些技术
- Java | interface 和 implements关键字【接口,看这篇就够了】
- 阿里云第三方:_身份证二要素API接口
- Android自定义网络状态请求页面
- word怎么删除空白页,Word Mac删除空白页面的图文方法
- 一个彷b站醒目留言的控件