
设计模式
文章平均质量分 77
面向对象 修修补补
用心做好每一件事
展开
-
设计模式汇总整理
在一一分析每种设计模式之前,我首先把所有的设计模式做了一个总结,大致分成三部分:创建型模式、结构型模式和行为型模式。一、创建型模式1、抽象工厂模式提供一个创建一系列或相关依赖对象的接口,而无需指定它们具体的类。2、建造者模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。3、工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂原创 2014-07-24 00:21:42 · 992 阅读 · 0 评论 -
职责链模式分析、结构图与基本代码
定义:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。好处:当客户提交一个请求时,请求时沿链传递直至有一个ConcreteHandler对象负责处理它。这就使得接收者和发送者都没有对方的明确信息,且链中的对象自己也并不知道链的结构。结果是职责链可简化对象的相互连接,它们仅需保持一个指向其后继原创 2014-07-31 23:40:37 · 847 阅读 · 0 评论 -
解释器模式分析、结构图及基本代码
定义:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。适用地:当有一个语言需要解释执行,并且你可将该语言中的句子表示为一个抽象语法树时,可使用解释器模式。如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。像正则表达式、浏览器应原创 2014-07-27 00:05:21 · 1127 阅读 · 0 评论 -
中介者模式分析、结构图及基本代码
定义:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。适用地方:中介者模式一般应用于一组对象以定义良好但是复杂的方式进行通信的场合以及想定制一个分布在多个类中的行为,而又不想生成太多的子类的场合。优点:中介者的出现减少了各个对象的耦合,使得可以独立地改变和复用各个对象类和中介类,比如任何国家的改变不会影响原创 2014-07-27 00:04:32 · 1187 阅读 · 0 评论 -
备忘录模式分析、结构图及基本代码
定义在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。结构图:Originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻它的内部状态,并可使用备忘录恢复内部状态。Originator可根据需要决定Memento存储Originator的哪些内部状态。Memento(备忘录):负责原创 2014-07-28 00:14:51 · 1764 阅读 · 0 评论 -
迭代器模式分析、结构图及基本代码
定义:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。适用地方:当需要访问一个聚集对象,而且不管这些对象是什么都需要遍历的时候,就应该考虑用迭代器模式。或者当需要对聚集有多种方式遍历时,可以考虑使用迭代器模式。尽管我们不需要显式地引用迭代器,但系统本身还是通过迭代器来实现遍历的。总的来说,迭代器模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以原创 2014-07-28 00:14:07 · 1293 阅读 · 0 评论 -
观察者模式分析、结构图及基本代码
定义:观测者模式定义了一种一对多的依赖关系,让多个观测者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观测者对象,使它们能够自动更新自己。结构图:Subject类,可翻译为主题或抽象通知者,一般用一个抽象类或者一个接口实现。它把所有对观察者对象的引用保存在一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观测者。Obse原创 2014-07-31 23:39:28 · 1412 阅读 · 0 评论 -
访问者模式的分析、结构图及基本代码
之前我对所有的23种设计模式作了一个小总结,现在我们来对每一种设计模式作详细的分析。首先是访问者模式:定义:表示一个作用于某对象结构中的各元素的操作。它可使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。适用地方:访问者模式的目的是要把处理从数据结构分离出来。很多系统可以按照算法和数据结构分开,如果这样的系统有比较稳定的数据结构,又有易于变化的算法的话,使用访问者模式就原创 2014-07-24 00:23:30 · 1174 阅读 · 0 评论 -
适配器模式的分析、结构图及基本代码
下面说说适配器模式:定义:将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适用地方:在软件开发中,也就是系统的数据和行为都正确,但接口不符时,我们应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。注意:要在双方都原创 2014-07-25 08:58:15 · 1083 阅读 · 0 评论 -
桥接模式的分析、结构图及基本代码
昨天探讨了访问者模式,今天来说说桥接模式:定义:将抽象部分与它的实现部分分离,是它们可以独立地变化。这并不是说,让抽象类与其派生类分离,因为这没有任何意义。实现指的是抽象类和它的派生类用来实现自己的对象。理解:实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让它们独立变化,减少它们之间的耦合。下面讲一下合成/聚合复用原则:合成/聚合复用原则就原创 2014-07-25 08:58:56 · 1029 阅读 · 0 评论 -
模板方法模式分析、结构图和基本代码
定义:模板方法模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。结构图:AbstractClass是抽象类,其实也就是一抽象模板,定义并实现了一个模板方法。这个模板方法一般是一个具体方法,它给出了一个顶级逻辑的骨架,而逻辑的组成步骤在相应的抽象操作中,推迟到子类实现。顶级逻辑也有可能调用一些具体方法原创 2014-07-31 23:38:48 · 1042 阅读 · 0 评论