
Java+设计模式
Java+23种设计模式
有机后浪
正在慢慢深入中。。。
展开
-
设计模式 - 总结与思考
前言《Design Patterns: Elements of Reusable Object-Oriented Software》设计模式,是四个作者Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides "四人组(Gang of Four)"的著作,我们一般讲到的Gof 设计模式就是说的这本书所描述的23种设计模式到这篇总结,已经完成...原创 2020-04-18 15:27:59 · 262 阅读 · 0 评论 -
设计模式(26)行为型模式 - 职责链模式
前言温故而知新先复习前面学习到的行为型设计模式:模板方法模式:定义一个算法骨架,特定的步骤延迟到子类实现(请客流程:点单-》吃-》买单,吃什么由子类决定)命令模式:将命令封装成对象,聚合执行者,请求者调用命令角色即可完成命令(遥控器按钮是一个个命令对象,按下按钮即可完成开关灯)访问者模式:将施加于对象结构的元素上的操作分隔,封装成访问者,即访问者改变不会影响到对象结构(购物车是一个...原创 2020-04-18 12:17:55 · 256 阅读 · 0 评论 -
设计模式(25)行为型模式 - 策略模式
前言温故而知新还是先复习学习到的行为型模式:模板方法模式:定义一个算法骨架,特定的步骤延迟到子类实现(请客流程:点单-》吃-》买单,吃什么由子类负责)命令模式:将命令封装成对象,聚合执行者,命令请求者仅需调用命令对象即可完成命令(遥控器按钮就是命令对象,按下按钮即可完成开关灯)访问者模式:将施加于对象结构的元素上的操作隔离,封装成具体访问者,修改访问者并不会改动对象结构(购物车是一...原创 2020-04-17 21:50:04 · 249 阅读 · 0 评论 -
设计模式(24)行为型模式 - 状态模式
前言温故而知新先复习前面学到的行为型模式:模板方法模式:定义一个算法流程骨架,特定的步骤延迟到子类实现(请客过程:点单-》吃-》买单 ,吃什么由子类决定)命令模式:将命令对象封装 ,聚合执行者,命令请求者调用命令对象即可完成命令(遥控器按钮就是各个命令,点击按钮即可完成开关灯)访问者模式:将施加与对象结构的元素上的操作分割封装成访问者,对象结构提供访问者访问的接口,即访问者改变不会...原创 2020-04-16 10:55:12 · 259 阅读 · 0 评论 -
设计模式(23)行为型模式 - 解释器模式
前言温故而知新先复习前面学习到的行为型设计模式:模板方法模式:定义一个操作流程的骨架,特定的步骤延迟到子类实现,即可重定义模板(请客流程:点单-》吃东西-》买单,吃什么具体由子类实现,即可定义不同的请客流程)命令模式:将命令封装成对象,命令对象聚合执行者,命令请求者调用命令对象即可完成命令,实现命令请求者和命令执行者的解耦合(遥控器上的一个个按钮是命令对象,点击按钮即可完成开关灯)...原创 2020-04-15 12:21:39 · 174 阅读 · 0 评论 -
设计模式(22)行为型模式 - 备忘录模式
前言温故而知新先复习学习到的行为型模式:模板方法模式:定义算法、流程的骨架,特定的步骤延迟到子类具体实现(情况过程:点单-》吃-》买单,具体吃什么由子类负责实现)命令模式:将命令封装成对象,命令执行者聚合到命令对象中,命令请求者调用命令对象即可完成命令,使执行者与请求者解耦合(遥控器按钮是一个个命令对象,遥控器只需按下按钮即可完成开关灯)访问者模式:将施加于对象结构中元素的操作分割...原创 2020-04-14 15:56:28 · 205 阅读 · 0 评论 -
设计模式(21)行为型模式 - 中介者模式
前言温故而知新先复习前面学到的行为型模式:模板方法模式:定义一个算法、流程骨架,将特定步骤的实现延迟到子类,完成模板的复用(请客流程:点单 -》吃 -》买单,具体吃什么可以由子类决定)命令模式:将命令封装成对象,聚合执行者,使请求者仅需使用命令对象即可完成命令,执行者与请求者完全解耦合(遥控器上的按钮就是一个个命令对象,遥控器仅需按下按钮即可完成开关灯命令)访问者模式:将施加于对象...原创 2020-04-14 10:49:09 · 267 阅读 · 0 评论 -
设计模式(20)行为型模式 - 观察者模式
前言温故而知新先复习前面学习的行为型模式:模板方法模式:在父类定义算法、流程的骨架,一些特定的步骤延迟到子类实现,用户可以复用父类模板(请客流程:点单 -》吃 -》买单,具体吃什么由子类决定)命令模式:将命令封装成对象,聚合命令执行者,命令请求者仅需调用命令对象即可完成命令执行,将命令请求者与命令执行者完全解耦(遥控器的按钮是一个个命令对象,遥控器按下按钮即可实现开关灯)访问者模式...原创 2020-04-13 10:12:43 · 339 阅读 · 0 评论 -
设计模式(19)行为型模式 - 迭代器模式
前言温故而知新先复习前面学的行为型模式模板方法模式:父类定义一个算法骨架,一些特定的步骤延迟到子类实现(请客流程:点单 - 》吃 - 》买单,具体吃什么延迟到子类实现)命令模式:命令封装成命令对象,命令对象聚合命令执行者,请求者仅需调用命令对象即可完成命令,将命令的请求者与执行者解耦合(遥控器的按钮是命令对象,遥控器仅需按下相应的按钮即可完成命令执行 - 开关灯)访问者模式:将施加...原创 2020-04-12 14:56:09 · 199 阅读 · 0 评论 -
设计模式(18)行为型模式 - 访问者模式
前言温故而知新还是先复习前面学到的知识:行为型模式:描述多个类或对象之间怎么协助共同完成单个对象无法实现的任务,涉及算法与对象间的职责分配模板方法模式:定义一个操作流程中的算法骨架,特定的步骤方法的具体实现延迟到子类,即方便与重定义一个算法的特定步骤(请客过程具体吃什么有子类决定,父类只定义一个请客流程:点单 - 》 吃饭 - 》买单)命令模式:将请求命令封装成对象,并将...原创 2020-04-11 11:30:31 · 1308 阅读 · 0 评论 -
设计模式(17)行为型模式 - 命令模式
前言行为型设计模式原创 2020-04-10 11:46:20 · 283 阅读 · 0 评论 -
设计模式(16)行为型模式 - 模板方法模式
前言对于设计模式里创建型模式和结构型模式的学习完成了现在开始行为型模式 - 模板方法模式的学习行为型模式思考行为型模式是什么?为什么要这么划分?前面的创建型模式和结构型模式:创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是“将对象的创建与使用分离”结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后...原创 2020-04-09 12:21:55 · 318 阅读 · 0 评论 -
设计模式(15)结构型模式 - 代理模式:静态、动态代理、Cglib代理
前言设计模式的结构型模式到了最后一个、也是最难的一个(我在学习过程中感觉的):代理模式学习代理模式的前置知识:Java反射先复习一下前面的几个结构型模式:适配器模式:创建适配器类,将客户无法使用的类转换成客户需要的类(充电器:220V - > 5V)桥接模式:通过聚合的方式构建一个“桥梁”,将一种事物的多个维度的变化简单的组合(画画需要多个颜色和画笔的大小型号)装饰模式:“套娃...原创 2020-04-08 13:08:27 · 303 阅读 · 0 评论 -
设计模式(14)结构型模式 - 享元模式
前言前面已经完成了结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式的学习适配器模式是通适配器类将一个客户无法使用的类转换成客户需要的类(充电器:220V->5V)桥接模式是定义一个“桥梁”将一个事物的多种变化通过聚合方式组合起来,简化了需要的类(画画的多种颜色与画笔的大小型号)装饰模式是动态的给被装饰者添加功能(给咖啡加糖、牛奶)组合模式是通过继承同一抽象类,将叶子节...原创 2020-04-07 09:34:59 · 218 阅读 · 0 评论 -
设计模式(13)结构型模式 - 外观模式
前言前面已经完成了结构型模式中:适配器模式、桥接模式、装饰模式、组合模式适配器模式是通适配器类将一个客户无法使用的类转换成客户需要的类(充电器:220V->5V)桥接模式是定义一个“桥梁”将一个事物的多种变化通过聚合方式组合起来,简化了需要的类(画画的多种颜色与画笔的大小型号)装饰模式是动态的给被装饰者添加功能(给咖啡加糖、牛奶)组合模式是通过继承同一抽象类,将叶子节点与上层节点统...原创 2020-04-06 18:47:18 · 217 阅读 · 0 评论 -
设计模式(12)结构型模式 - 组合模式
前言关于结构型模式,学习了适配器模式、桥接模式、装饰模式适配器模式是通过适配器类将无法使用的类转换成客户需要的类桥接模式是通过架起一个“桥梁”,将一个事物的两个维度的变化结合起来,两个维度是同级的装饰模式是在一个事物的基础上,动态的添加一些额外的职责,类似与套娃,在被修饰者身上套上一个装饰,以到达扩展接下来,学习另一个结构型模式 - 组合模式现实的问题这是一个Linux目录,可能一...原创 2020-04-05 10:33:01 · 242 阅读 · 0 评论 -
设计模式(11)结构型模式 - 装饰模式
前言前面学习了结构型模式的适配器模式、桥接模式适配器模式是将类转换成客户需要的类桥接模式是将抽象部分和实现部分分离,使两个维度的变化分割、组合在一起而接下来学习结构型模式 - 装饰模式目录现实问题装饰模式装饰模式结构一个装饰模式案例装饰模式的优缺点使用场景6.1. 常用的装饰模式应用模式扩展7.1. 具体构件扩展7.2. 模式简化7.3. 透明装饰模式总结...原创 2020-03-20 18:10:55 · 503 阅读 · 0 评论 -
设计模式(10)结构型模式 - 桥接模式
前言前面已经学了结构型模式、适配器模式适配器模式是为了将类转变成客户需要的类现在继续学习桥接模式目录现实案例桥接模式2.1. 结构使用案例桥接模式的优缺点使用场景适配器模式与桥接模式总结现实案例画画时,需要大、中、小三种大小的画笔,需要3种颜色如果使用蜡笔,就需要9种蜡笔如果使用毛笔,仅需准备3种不同大小的毛笔(大致的例子)使用蜡笔就是普通的方法,使用毛笔...原创 2020-03-13 15:29:59 · 588 阅读 · 0 评论 -
设计模式(9)结构型模式 - 适配器模式
前言已经完成了创建型模式:简单工厂模式、工厂方法模式、抽象工厂模式、单例模式、原型模式、建造者模式的学习接下来是结构型模式 - 适配器模式目录结构型模式适配器模式类适配器对象适配器接口适配器适配器优缺点模式应用总结结构型模式结构型模式(Structural Pattern)描述如何将类或者对象结合在一起形成更大的结构,就像搭积木,可以通过简单积木的组合形成复杂的、功...原创 2020-03-06 16:27:05 · 341 阅读 · 0 评论 -
设计模式(8)创建型模式 - 建造者模式
前言前面已经学习了创建型模式:简单工厂模式(不是23种设计模式之一)、工厂方法模式、抽象工厂模式、单例模式、原型模式接下来最后一种创建型模式:建造者模式目录模式动机建造者模式建造者模式的优缺点模式适用环境模式扩展总结模式动机建造者模式可以将部件和其组装过程分开,一步一步创建一个复杂的对象。用户只需要指定复杂对象的类型就可以得到该对象,而无须知道其内部的具体构造细节...原创 2020-02-28 15:09:00 · 446 阅读 · 0 评论 -
设计模式(7)创建型模式 - 原型模式
前言创建型模式的有一个模式:原型模式Java中实现原型模式需要理解复制JavaSE笔记(2.7)Java基础 - 复制目录原型模式1.1. 需求1.2. 定义1.3. 结构1.4. 具体实现深克隆、浅克隆原型模式的优缺点原型模式应用场景模式扩展总结原型模式需求在有些系统中,存在大量相同或相似对象的创建问题,如果用传统的构造函数来创建对象,会比较复杂且耗时耗...原创 2020-02-28 10:32:43 · 296 阅读 · 0 评论 -
设计模式(6)创建型模式 - 单例模式
前言对于三个工厂模式有了详解的了解现在继续学习其他的设计模式创建型模式 - 单例模式目录单例模式动机单例模式定义单例模式结构案例实现单例模式优缺点模式适用环境模式应用模式扩展总结单例模式动机对于系统中的某些类来说,保证只有一个实例很重要例如Windows中任务管理器就始终只能打开一个如何保证一个类只有一个实例并且这个实例易于被访问呢?定义一个全局变量可以...原创 2020-02-26 22:02:20 · 354 阅读 · 0 评论 -
设计模式(5)创建型模式 - 抽象工厂模式
前言前面学习了简单工厂模式和工厂方法模式可以说工厂方法模式是简单工厂模式的一个扩充,解决了简单工厂模式的会出现的开闭原则问题而抽象工厂模式又是工厂方法模式的一个扩充设计模式(4)创建型模式 -工厂方法模式设计模式(3)创建型模式 - 简单工厂模式目录工厂方法模式的局限抽象工厂模式2.1. 概念工厂方法模式的局限下面是一个工厂方法模式:一个生产车的工厂,只能生产这些车(...原创 2020-02-26 18:09:30 · 242 阅读 · 0 评论 -
设计模式(4)创建型模式 -工厂方法模式
前言学习了简单工厂模式,对创建型模式有一定的概念而简单工厂模式是一种特殊的工厂方法模式接下来学习23种设计模式之一:工厂方法模式简单工厂模式的不足简单工厂模式通过设置一个工厂类,让用户仅需提供参数就可以创建对象具体看:设计模式(3)创建型模式 - 简单工厂模式switch (carType){ case "BMW": retur...原创 2020-02-24 17:30:14 · 411 阅读 · 0 评论 -
设计模式(3)创建型模式 - 简单工厂模式
前言前面大致懂了使用UML去表示模型设计模式七大原则则是设计模式的总体思想接下来看看具体的设计模式目录设计模式创建型模式简单工厂模式3.1. 模式定义3.2. 模式实例简单工厂模式的优缺点简单工厂模式适用场景总结设计模式设计模式有23种可以通过不同的分法分类最常见的是根据目的分类:创建型模式(五种):工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式...原创 2020-02-24 10:59:29 · 456 阅读 · 0 评论 -
设计模式(2)六大原则(七大原则)
前言前面已经明白了UML是什么,UML该在哪里用接下来开始真正接触设计模式的思想:六大原则目录六大原则(七大原则)开闭原则2.1. 开闭原则的作用2.2. 开闭原则的案例里氏替换原则3.1. 里氏替换原则的作用3.2. 里氏替换原则的案例依赖倒置原则4.1. 依赖倒置的作用4.2. 依赖倒置的案例单一职责原则5.1. 单一职责原则优点5.2. 单一职责原则案例接...原创 2020-02-23 20:28:12 · 1169 阅读 · 0 评论 -
设计模式(1)UML详解
前言学习设计模式,需要先对UML有一定概念目录UML概括UML的结构2.1. 模型元素2.2. 视图2.2. 图2.3. 通用机制模型UML的特点类与类图5.1. 类5.2. 类图5.3. 类之间的关系UML概括UML(Unified Modeling Language):统一建模语言统一建模语言(Unified Modeling Language,UML)...原创 2020-02-21 19:25:16 · 1511 阅读 · 0 评论