![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
mechanic-heaven
这个作者很懒,什么都没留下…
展开
-
行为型设计模式------备忘录模式
目录前言备忘录模式模式定义模式结构模式设计举例方案一方案二优缺点适用场景模式扩展 前言 在平时使用软件的过程中,难免会碰到误操作的时候,这个时候就需要有一种“回退”机制。软件可以保存用户每一次操作时系统的状态,这样如果出现误操作,就可以将存储的历史状态取出,即回到之前的状态。 比如我们经常使用的Ctrl+z(撤销),就是解决误操作的问题。 备忘录模式 模式定义 在不破坏封装的条件下,捕获一个对象的...原创 2020-04-01 15:29:52 · 151 阅读 · 0 评论 -
行为型设计模式------职责链模式
文章目录什么是行为型设计模式职责链模式引子 什么是行为型设计模式 行为型设计模式是对在不同的对象之间的责任划分和算法的抽象化。它不仅关注类和对象的结构,而且重点关注他们之间的相互作用。 通过行为型设计模式,可以更加清晰的划分类和对象的职责,并研究系统在运行时不同实例对象之间的交互。在系统运行的过程中,对象的存在并不是孤立的,它可以通过相互通信和协作来完成某些复杂的功能,一个对象的运行也会影响到其他...原创 2020-03-27 20:16:30 · 202 阅读 · 0 评论 -
结构型设计模式----装饰模式
目录引子模式简介举个例子优缺点适用场景一些问题 引子 先列举一个生活中的场景。假如我们买了一套房(买不起。。),但是是一个毛胚房(指没有任何装修的房子),只能住。那么我们为了让房子变得温馨舒适,就要进行装修了,这样没有改变房子原本用来居住的功能,还增加了很多新的功能(比如做饭)。 那么这一期的装饰模式就是基于这样的动机,在不改变原有功能的情况下添加新功能。 那么给一个类或对象增加新的行为可以通过两...原创 2020-03-25 20:45:26 · 204 阅读 · 0 评论 -
结构型设计模式----外观模式
引子 我们先来讲一个故事,比如我现在要组装一台电脑。 方案一:去电子市场买cpu,内存条,显卡,磁盘等所有用到的部件,然后再进行组装。但是这个方案的问题在于,要对这些部件有所了解,选择性能好的,考虑不同部件的兼容性问题等。 方案二:自己组装太麻烦了,找个装机公司吧,然后说自己的需求,之后就等着拿电脑就完事了。 假设我们把电子市场看成一个系统,把卖配件的公司看成不同的子系统,那么客户端(我)需要...原创 2020-03-24 16:37:10 · 198 阅读 · 0 评论 -
结构型设计模式----适配器模式
目录简介结构型设计模式适配器模式类适配器模式对象适配器缺省适配器模式优缺点比较适用场景 简介 结构型设计模式 结构型设计模式描述如何将类和对象结合在一起形成更大的结构。 分类:类结构型和对象结构型 类结构型关心得是类的组合,由多个类组合成一个更大的系统,在类结构中一般存在继承和实现关系。 对象结构型关心得是类和对象得组合,通过在一个类中定义另一个类得实例得方式将它们关联起来。一般用关联关系来代替...原创 2020-03-22 16:32:16 · 240 阅读 · 0 评论 -
创建型设计模式-----原型模式(浅克隆、深克隆)
今天继续讲创建型设计模式中的原型模式,大家可以从标题中略微猜测一下,这个原型模式是个什么东东。 简介 定义:用原型实例创建对象的种类,然后通过复制这些原型创建新的实例。无须知道具体的创建细节。 动机:使用原型模式来复制一个对象,从而克隆出多个一模一样的对象。 说到这里大家应该明白了,这个原型模式其实就是克隆。当然克隆也有深克隆和浅克隆,下面举例子的时候我会说明的。 模型结构图: 说明: Prot...原创 2020-03-21 15:57:44 · 557 阅读 · 0 评论 -
创建型设计模式----建造者模式
目录简介模式结构举个栗子优缺点适用场景 简介 建造者模式:将一个复杂对象的构建和表示分离,使得同样的构造过程可以创建不同的表示。 说明:对象构建型模式就是一步步创建一个复杂的对象,用户只需要指定一个复杂对象的类型就可以构建它们,不需要知道具体的内部细节。比如汽车,用户只需要指定汽车的类型(如面包车)就可以得到了,不需要知道车的轮子,发动机这些是怎么制造安装的。 模式结构 说明一下具体成分: Bu...原创 2020-03-20 13:53:00 · 246 阅读 · 0 评论 -
创建型设计模式----简单工厂、工厂、抽象工厂
目录简单工厂模式工厂模式抽象工厂模式 简单工厂模式 在简单工厂中可以根据字符串的不同返回不同的实例。它定义了一个专门的工厂类去创建类的实例,将类的创建和使用解耦。 具体实现如下, 1、定义一个接口 public interface Fruit { String fruitName(); } 2、定义具体的实现 class Apple implements Fruit { @O...原创 2020-03-17 14:40:35 · 191 阅读 · 0 评论 -
创建型设计模式----单例模式
单例模式的特点: 单例模式 构造器私有 持有自己类型的属性 对外提供获取实例的静态方法 我在每一种模式前都有相关介绍,这样看起来方便一些 /* * 懒汉模式 * 延迟初始化(典型的竞态条件---先检查后执行的常见情况),这种情况下 通过一个可能失效的观测结果来查看下一步动作 * 线程不安全的 * */ class Lazy { private Lazy() {} pr...原创 2020-02-16 10:46:08 · 102 阅读 · 0 评论