设计模式
morning_sir_jking
这个作者很懒,什么都没留下…
展开
-
23种设计模式全解析
一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式转载 2016-07-01 09:42:58 · 1352 阅读 · 0 评论 -
Buileder(生成器)—对象创建型模式
Buileder(生成器)—对象创建型模式 一 意图 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 二 适用性 在以下情况使用Build模式: 1 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 2 当构造过程必须允许被构造的对象有不同的表示时。 3 Builder模式要解决的也正是这样的问题:转载 2016-07-08 14:30:25 · 946 阅读 · 0 评论 -
设计模式之一---工厂方法模式【Factory Method模式】
在设计模式中,Factory Method模式是一种比较简单的设计模式,应用比较广泛,但也是一种比较重要的设计模式之一。在很多地方我们都会看到xxxFactory这样命名的类,那么,什么是Factory Method,为什么要用这个模式,如何用Java语言来实现该模式? 【1】基本概念 FactoryMethod是一种创建性模式,它定义了一个创建对象的接口,但是却让转载 2016-07-08 11:49:57 · 356 阅读 · 0 评论 -
设计模式C++学习笔记之十九(State状态模式)
概念:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。 main(),客户 CLiftState,电梯状态抽象类 CCloseingState,电梯门关闭 COpenningState,电梯门打开 CRunningState,电梯运行 CStoppingState,电梯停止 CContext,电梯的控制面板 说明:CConte转载 2016-07-07 18:03:51 · 381 阅读 · 0 评论 -
C++设计模式-Composite组合模式
Composite组合模式 作用:将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。 UML图如下: 在Component中声明所有用来管理子对象的方法,其中包括Add、Remove等,这样实现Component接口的所有子类都具备了Add和Remove。 这样做的好处就是叶节点和枝节点对于外界没有区别,它们转载 2016-07-07 16:57:58 · 436 阅读 · 0 评论 -
设计模式(14)-Flyweight Pattern
一、 享元(Flyweight)模式 Flyweight在拳击比赛中指最轻量级,即"蝇量级",有些作者翻译为"羽量级"。这里使用"享元模式"更能反映模式的用意。 享元模式以共享的方式高效地支持大量的细粒度对象。享元对象能做到共享的关键是区分内蕴状态(Internal State)和外蕴状态(External State)。内蕴状态是存储在享元对象内部并且不会随环境改变而改变。因此内蕴状转载 2016-07-07 16:36:51 · 364 阅读 · 0 评论 -
Façade模式--门面模式
举一个生活中的小例子,大凡开过学或者毕过业的都会体会到这样一种郁闷:你要去n个地方办理n个手续(现在大学合并后就更加麻烦,因为可能那n个地方都隔的比较远)。但是实际上我们需要的就是一个最后一道手续的证明而已,对于前面的手续是怎么办的、到什么地方去办理我们都不感兴趣。 实际上在软件系统开发中也经常回会遇到这样的情况,可能你实现了一些接口(模块),而这些接口(模块)都分布在几个类中(比如A和B、C、原创 2016-07-07 15:37:41 · 1171 阅读 · 0 评论 -
Observer观察者模式
作用:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己 UML图: Subject类,可翻译为主题或抽象通知者,一般用一个抽象类或者一个借口实现。它把所有对观察者对象的引用保存在一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一个借口,可以增加和删除观察者对象。转载 2016-07-15 16:54:36 · 289 阅读 · 0 评论 -
C++设计模式-Decorator装饰模式
Decorator装饰模式 作用:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 UML图如下: Component是定义一个对象接口,可以给这些对象动态地添加职责。 ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。 Decorator,装饰抽象类,继承了Component,从外类来扩展Comp转载 2016-07-04 18:42:38 · 395 阅读 · 0 评论 -
C++设计模式-Adapter适配器模式
Adapter适配器模式 作用:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 分为类适配器模式和对象适配器模式。 系统的数据和行为都正确,但接口不符时,我们应该考虑使用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。转载 2016-07-04 15:03:20 · 380 阅读 · 0 评论 -
再谈bridge模式理解小例子
今天回头看了原来写的bridge模式的文章,感觉还是太泛化、理论,不能够方便快速的理解,下面就借这《大话设计模式》中有关bridge模式的解释来谈谈实际实际应用解决的问题。 手机品牌和软件是两个概念,不同的软件可以在不同的手机上,不同的手机可以有相同的软件,两者都具有很大的变动性。如果我们单独以手机品牌或手机软件为基类来进行继承扩展的话,无疑会使类的数目剧增并且耦合性很高,(如果更改品牌或增转载 2016-07-04 14:04:15 · 503 阅读 · 0 评论 -
Buileder(生成器)—对象创建型模式
一 意图 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 二 适用性 在以下情况使用Build模式: 1 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 2 当构造过程必须允许被构造的对象有不同的表示时。 3 Builder模式要解决的也正是这样的问题: 当我们要创建的对象很复杂的时候(通常是由很多其他转载 2016-07-04 09:55:25 · 414 阅读 · 0 评论 -
继承、实现、依赖、关联、聚合、组合的联系与区别
继承、实现、依赖、关联、聚合、组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性; 实现 指的是一个class类实现interface接口(转载 2016-07-01 17:11:53 · 1887 阅读 · 0 评论 -
设计模式之五 --- 代理(Proxy)模式
【1】基本概念 代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问。代理者可以作任何东西的接口:网络连接、内存中的大物件、档案或其它昂贵或无法复制的资源。 【2】简单分析 我们先看一下该设计模式的UML结构图: 我们通过上面的结构图可以看到: Subject类:定义了RealSubject和Proxy的共用接口,这样转载 2016-07-08 14:46:12 · 307 阅读 · 0 评论