![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
面向对象的设计模式
剑决浮云气
事了拂衣去,深藏功与名
展开
-
设计模式总结
1.一个目标管理变化,提高复用2.两种手段分解和抽象3.八大原则4. 重构技法5.从封装变化角度对模式分类6.什么时候不用模式7.高手的经验之谈8.成长之路原创 2021-08-04 08:59:15 · 77 阅读 · 0 评论 -
Visitor(访问者)
对象行为型模式问题##意图结构总结原创 2021-08-01 10:49:21 · 72 阅读 · 0 评论 -
Command(命令)
1.对象行为型模式2.问题3.结构4.总结原创 2021-07-28 10:53:22 · 89 阅读 · 0 评论 -
Chain of Responsibility(职责链模式)
1.对象行为型模式2.场景3.意图4.结构里面有一个多态的链表,只需要把请求扔给第一个对象,就可以了5.总结原创 2021-07-27 11:21:13 · 55 阅读 · 0 评论 -
Iterator(迭代器)
1. 对象行为型模式2.动机3.意图4.结构这个迭代器是基于面向对象的思想设计的,但是在迭代过程中,虚函数的调用太费资源,STL的迭代器的实现是基于模板,是一种编译时的多态。5.总结原创 2021-07-26 10:33:48 · 52 阅读 · 0 评论 -
Composite(组合)
1.对象结构型模式2.通过一个多态的递归调用来解耦内部和外部3.描述4.问题5.意图6.结构7.总结原创 2021-07-25 09:20:48 · 65 阅读 · 0 评论 -
Memento(备忘录)
1.对象行为型模式2.意图3.问题4.5.结构6.总结原创 2021-07-24 10:14:00 · 44 阅读 · 0 评论 -
Mediator(中介者)
1.对象行为型模式2.进行接口隔离在组件构建过程中,某些接口之间直接的依赖常常会导致很多问题,甚至根本无法实现。采用添加一层简介(稳定)接口,来隔离本来互相紧密关联的接口是一种常见的解决方案3.为什么要引入中介者模式在软件构建过程中,经常出现多个对象互相关联交互的情况,对象之间常常会维持一种复杂的引用关系,如果遇到一些需求的更改,这种直接的引用关系将面临不断地变化在这种情况下,我们可以使用一个中介对象来管理对象间的关联关系,避免相互交互的对象之间的紧耦合引用关系,从而更好地抵御变化4.模式定义原创 2021-07-22 09:53:05 · 65 阅读 · 0 评论 -
State(状态)
1. 对象行为型模式2.在对象构建过程中,某些对象的状态经常面临变化,那么如何对这些变化进行有效的管理?同时又维护高层模块的稳定?“状态变化”模式为这一问题提供了一种解决方案3.意图允许一个对象在其内部状态改变时,改变他的行为。从而使对象看起来修改了他的类状态改变,行为也就得随之改变。4.总结①STATE模式将所有与一个特定状态相关的行为都放入一个STATE的子类对象中,在对象状态切换时,切换相应的对象;同时维持了STATE的接口,这样实现了具体操作与状态转换之间的解耦②为不同的状态引入不同的原创 2021-07-22 09:42:16 · 177 阅读 · 0 评论 -
Adapter(适配)
类对象结构型模式1.模式定义比如STL中stack和queue的实现,内部是一个dequeue,转化成他两需要的接口2.目的3.结构4.总结原创 2021-07-20 09:49:51 · 100 阅读 · 0 评论 -
Proxy(代理)
对象结构型模式1.问题2.意图3.结构4.总结原创 2021-07-19 09:38:53 · 6732 阅读 · 0 评论 -
Facade(装饰模式)
对象结构型模式1.意图2.解决的问题例如操作系统 ,就是在用户和硬件之间,提供了一个接口,使得使用计算机更为简便3.总结原创 2021-07-18 09:07:41 · 80 阅读 · 0 评论 -
FlyWeight(享元)
对象创建型模式1.动机2.意图3.结构4.总结5.同一个key,在一个系统中只会存在一份,而且你不会用到的key,不会被创建出来。这个只存在一份的对象,通常是只读,或者是写时复制原创 2021-07-17 08:43:23 · 45 阅读 · 0 评论 -
Singleton(单件)
1.对象创建型模式原创 2021-07-16 11:52:10 · 50 阅读 · 0 评论 -
Builder(生成器)
1. 对象创建型模式2.原因3. 意图4.结构5. 总结原创 2021-07-13 16:50:35 · 67 阅读 · 0 评论 -
Prototype(原型)
1.对象创建型模式原创 2021-07-11 09:48:35 · 42 阅读 · 0 评论 -
AbstractFactory(抽象工厂)
1.对象创建型模式关键 :一系列相关的产品 进行联合使用2.做法3. 总结4.结构①:AbstractFactory定义一系列相互协作的工厂的接口②ConcreteFactory实现创建一系列类的接口③AbstractProduct为一类产品声明一个接口④CreateProduct定义一个将被相应的具体工厂创建的产品对象实现接口...原创 2021-07-10 10:22:42 · 44 阅读 · 0 评论 -
Factory Method (工厂方法)
1.对象创建型模式2.目的3.做法4.结构①product抽象类定义了产品对象的接口②ComcreteProduct具体类实现了product的接口,是一个个具体的产品类③Creator抽象类定义了工厂方法的接口,该接口返回一个product类型的对象④ConcreteCreator具体类实现工厂方法,返回具体的ConcreteProduct实例每一个产品 都需要一个ConcreteCreator5.总结...原创 2021-07-09 10:23:46 · 41 阅读 · 0 评论 -
Bridge(桥模式)
1.对象结构型模式2.意图将抽象部分 (业务功能) 与它的实现部分 (平台实现) 分离,使他们可以独立的变化3总结4.结构①Abstration:定义抽象类的接口, 维护一个指向Implementor的多态指针②RefineAbstraction:扩充Abstraction的接口③Implementor:定义实现类的接口,一般来讲 Implementor这个接口仅提供基本的操作,更加抽象高层的操作,由Abstraction来定义④Concreteimplementor:实现Imp原创 2021-07-08 10:10:11 · 84 阅读 · 0 评论 -
Decorator设计模式(装饰)
1.对象结构型模式2.意图动态的(组合)给一个对象添加额外的职责,就增加功能来说,Decorator模式相比生成子类(继承)更加灵活 (消除重复代码&减少子类个数)3.总结4.结构5.关键点Decortor 继承了Component的抽象类,保持了接口的一致性,并且维持了一个指向Component的指针,来实现多态...原创 2021-07-07 09:17:00 · 50 阅读 · 0 评论 -
Observer 观察者模式
1. Observer 观察者模式 又叫Event,是用来实现框架和应用程序之间的松耦合,晚绑定2.意图定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖他的对象都能得到通知 并且被自动更新3.关键对象是 目标 和 观察者一个目标可以有多个依赖于他的观察者,一旦目标的状态发生变化,所有的观察者都得到通知。作为对这个通知的响应,每个观察者都将查询目标,使得与目标的状态一致也叫作发布-订阅,目标是通知的发布者,他发出通知时并不需要知道谁是他的观察者,可以有任意数目的观察者订阅并接受原创 2021-07-06 10:02:29 · 92 阅读 · 0 评论 -
Strategy(策略模式)
对象行为型模式1.意图定义一系列的算法,把他们一个个封装起来,并且使得他们可以相互替换(变化)。本模式使得算法可以独立于他的客户(稳定)而存在变化(拓展 子类)。将算法与他的对象解耦2.类图上方两个是稳定的下面三个是变化的,可拓展的3.总结①strategy及其子类 为组件 提供了一系列可以复用的算法,使得组件可以灵活的在运行时根据需要在各个算法中进行选择②提供了条件判断语句 之外的 另外一种选择③减少对没有使用到的算法的支持...原创 2021-07-03 11:00:02 · 81 阅读 · 0 评论 -
Template Method模板方法
1.意图定义一个操作中算法的骨架(稳定),而将一些步骤延迟到(虚函数)子类中。Template Method使得子类可以不改变一个算法的结构(重用),即可重新定义该算法的某些特定步骤。2.动机在软件构建的过程中,它常常有稳定的整体操作结构,但各个子步骤却有很多改变的需求,或者由于固定的原因(框架和应用之间的关系),而无法和任务的整体结构同时实现3.如何在稳定操作结构的前提下,来应对子步骤的变化或晚期的实现需求?一个早的东西 去调用 一个晚实现的东西 , 晚绑定4.稳定的代码写成非虚函数,变化的函原创 2021-07-02 10:24:04 · 50 阅读 · 0 评论 -
设计模式入门
程序员的第一个概念:重用①重用放在重中之重软件重用,是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域知识。通常,可重用的元素也称作软构件,可重用的软构件越大,重用的粒度越大。...原创 2021-07-01 11:25:49 · 90 阅读 · 0 评论 -
面向对象设计原则
1.变化是复用的天敌,面向对象可以抵御变化设计原则 比 设计模式 更重要接口标准化 是一个产业强盛的标志2.重新认识面向对象①理解隔离变化从宏观层面来看,面向对象的构建方式更能适应软件的变化,将变化所带来的影响减为最小②各司其职从微观层面来看,面向对象更强调各个类的责任;由于需求变化导致的新增类型不应该影响原来类型的实现③对象是什么?从语言实现层面来看,对象封装了代码和数据;从规格层面讲,对象是一系列可被使用的公共接口;从概念层面讲,对象是某种拥有责任的抽象。3.责任使我们在设计类原创 2021-07-01 11:05:11 · 69 阅读 · 0 评论