前面说过,简单工厂模式是最基础的一种设计模式,那以工厂命名的设计模式就是23种设计模式中最多的一种,他们一脉相承,一步一步进化而来,这里就是其中的最后一种——抽象工厂模式(Abstract Factory),其是在工厂方法模式的基础上改进而来,如果没有弄明白工厂方法模式的同学请先观看《大话设计模式C++版——工厂方法模式》。
为什么会有抽象工厂模式?抽象工厂模式是简单工厂模式缺陷的终极解决方式么?NO,抽象工厂模式并不是为了解决简单工厂模式的缺陷而活着,它是因为有新的使命而诞生。 一个简单的例子,有...
分类:
编程语言 时间:
2015-06-14 09:32:31
阅读次数:
137
声明:本系列博客参考资料《大话设计模式》,作者程杰。
访问者模式表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。
UML类图:
角色:
1.抽象访问者(State):为该对象结构中具体元素角色声明一个访问...
分类:
Web程序 时间:
2015-06-11 11:09:07
阅读次数:
124
声明:本系列博客参考资料《大话设计模式》,作者程杰。
职责链模式(又叫责任链模式)包含了一些命令对象和一些处理对象,每个处理对象决定它能处理那些命令对象,它也知道应该把自己不能处理的命令对象交下一个处理对象,该模式还描述了往该链添加新的处理对象的方法。
UML类图:
角色: ...
分类:
Web程序 时间:
2015-06-11 11:07:21
阅读次数:
152
喜欢的朋友可以去网上下载大话设计模式PDF格式。根据模式的目的可分为3类:1.创建型模式:与对象的创建有关。2.结构性模式:处理类与对象的组合。3.行为性模式:对类或对象怎样交互和怎样 分配职责进行描述。面向对象设计的2个基本原则:1.针对接口编程,而不是针对实现编程。2.优先使用对象组合,而不是类...
分类:
其他好文 时间:
2015-06-10 14:01:18
阅读次数:
94
声明:本系列博客参考资料《大话设计模式》,作者程杰。
备忘录模式又叫做快照模式或Token模式,在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。
UML类图:
角色: ...
分类:
Web程序 时间:
2015-06-10 12:27:21
阅读次数:
171
声明:本系列博客参考资料《大话设计模式》,作者程杰。
状态模式当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。
UML类图:
角色...
分类:
Web程序 时间:
2015-06-10 12:24:59
阅读次数:
119
声明:本系列博客参考资料《大话设计模式》,作者程杰。
模板模式准备一个抽象类,将部分逻辑以具体方法以及具体构造形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。先制定一个顶级逻辑框架,而将逻辑的细节留给具体的子类去实现。
UML类图:
...
分类:
Web程序 时间:
2015-06-10 12:19:16
阅读次数:
124
声明:本系列博客参考资料《大话设计模式》,作者程杰。
中介者模式用一个中介者对象来封装一系列的对象交互。中介者使得各对象不需要显式地相互引用,从而使其松散耦合,而且可以独立地改变它们之间的交互。
UML类图:
角色:
中介者接口(UnitedNations):在里...
分类:
Web程序 时间:
2015-06-09 21:55:00
阅读次数:
184
最近看了一些关于IOS委托的文章,看完之后,感觉不大好。引文:委托delegation是一种简单但是功能强大的设计模式,它的功能是程序中一个对象代表另一个对象,或者一个对象与另外一个对象协同工作。委托对象保留了另外一个对象的引用,即就是委托,以及在合适的时候发送消息给委托。消息通知事件的委托方法,委...
分类:
移动开发 时间:
2015-06-09 17:04:38
阅读次数:
140
声明:本系列博客参考资料《大话设计模式》,作者程杰。
迭代器模式:迭代器模式是遍历集合的成熟模式,迭代器模式的关键是将遍历集合的任务交给一个叫做迭代器的对象,它的工作时遍历并选择序列中的对象,而客户端程序员不必知道或关心该集合序列底层的结构。
UML类图:
角色:
Itera...
分类:
Web程序 时间:
2015-06-08 23:26:56
阅读次数:
240