设计模式
likeyrivers
坚持做自己懒得做但是正确的事情,你就能得到别人想得到却得不到的东西。
展开
-
中介者模式(Mediator)
10.1 场景问题 10.1.1 如果没有主板 大家都知道,电脑里面各个配件之间的交互,主要是通过主板来完成的(事实上主板有很多的功能,这里不去讨论)。试想一下,如果电脑里面没有主板,会怎样呢? 如果电脑里面没有了主板,那么各个配件之间就必须自行相互交互,以互相传送数据,理论上说,基本上各个配件相互之间都存在交互数据的可能。如图10.1所示: 图10.1 没转载 2014-01-03 13:54:36 · 596 阅读 · 0 评论 -
模板方法模式
模板方法模式分类: 设计模式 2012-06-28 11:31 1763人阅读 评论(0) 收藏 举报javaservletstringserviceclassprimitive目录(?)[-] 模板方法模式的结构 源代码 模板方法模式中的方法 模板方法 基本方法 默认钩子方法 命名规则 使用场景 源代码 模板方法模式在Servlet中的应用 模板方法模式是类的行为模式。准备一个抽象类,将部分转载 2014-06-12 16:32:35 · 509 阅读 · 0 评论 -
访问者模式
访问者模式是对象的行为模式。访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。 分派的概念 变量被声明时的类型叫做变量的静态类型(Static Type),有些人又把静态类型叫做明显类型(Apparent Type);而变量所引用的对象的真实类型又叫做变量的实际类型(Actual Type)。比如 [j转载 2014-06-13 09:53:56 · 567 阅读 · 0 评论 -
策略模式
策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准转载 2014-06-12 16:07:27 · 473 阅读 · 0 评论 -
Mediator中介者(调停者)模式定义
Mediator中介者模式定义 Mediator 中介者,或者叫仲裁者,类似房屋的中介,比如演播室的主播和嘉宾,主播在说话的时候,嘉宾不能打断他,主播停止说话的时候嘉宾才能说话,主播则可以随时说话,这里还有一个中间人: 1.主播对中介者说,节目开始了,我要说话了 2.中介者看看嘉宾是不是在说话,如果是在说话,让他停止,让主播说,如果嘉宾没在说话,让主播说转载 2014-06-13 12:31:50 · 538 阅读 · 0 评论 -
调停者模式
调停者模式是对象的行为模式。调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显引用。从而使它们可以较松散地耦合。当这些对象中的某些对象之间的相互作用发生改变时,不会立即影响到其他的一些对象之间的相互作用。从而保证这些相互作用可以彼此独立地变化。 为什么需要调停者 如下图所示,这个示意图中有大量的对象,这些对象既会影响别的对象,又会被别的对象所影响,因此常常叫做同事(Coll转载 2014-06-13 12:33:58 · 563 阅读 · 0 评论 -
桥梁(bridge)模式
桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化”。 桥梁模式的用意 桥梁模式虽然不是一个使用频率很高的模式,但是熟悉这个模式对于理解面向对象的设计原则,包括“开-闭”原则以及组合/聚合复用原则都很有转载 2014-06-12 14:39:13 · 631 阅读 · 0 评论 -
访问者模式
visitor定义 作用于某个对象群中各个对象的操作. 它可以使你在不改变这些对象本身的情况下,定义作用于这些对象的新操作. 在Java 中,Visitor 模式实际上是分离了collection 结构中的元素和对这些元素进行操作的行为 参考:http://smartfool.iteye.com/blog/207092 总觉得他的代码实现有些问题,每次执转载 2014-06-13 09:27:31 · 348 阅读 · 0 评论 -
深入浅出Java设计模式之迭代器模式
一、 引言 迭代这个名词对于熟悉Java的人来说绝对不陌生。我们常常使用JDK提供的迭代接口进行java collection的遍历: Iterator it = list.iterator(); while(it.hasNext()){ //using “it.next();”do some businesss logic } 而这就是转载 2014-06-13 17:29:36 · 347 阅读 · 0 评论 -
门面模式 (Facade)
分类: 设计模式 2012-06-26 16:31 2154人阅读 评论(0) 收藏 举报 javaclasstomcatservletstringc 目录(?)[+] 门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。 医院的例子 现代的软件系统都是比较复杂的,转载 2014-06-11 22:44:15 · 393 阅读 · 0 评论 -
观察者模式本文纯属于转载
观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 观察者模式转载 2014-06-12 16:51:40 · 496 阅读 · 0 评论 -
builder设计模式(建造模式)
对于Builder模式很简单,但是一直想不明白为什么要这么设计,为什么要向builder要Product而不是向知道建造过程的Director要。刚才google到一篇文章,总算清楚了。在这里转贴一下这位richardluo的比喻。 简单地说,就好象我要一座房子住,可是我不知道怎么盖(简单的砌墙,层次较低),也不知道怎么样设计(建几个房间,几个门好看,层次较高),于是我需要找一帮民工,他们会转载 2014-06-11 09:15:18 · 399 阅读 · 0 评论 -
掌握设计模式 (迈出从3K到1W的)
设计模式编程八卦出版语言测试 IT职场的小菜经常有这样的疑问: 为什么一个相似的功能,大牛一会儿就搞定,然后悠闲地品着下午茶逛淘宝;而自己加班加点搞到天亮还做不完。 为什么用户提出需求变更后,大牛只需潇洒地敲敲键盘,改改配置;而自己将代码改了又改,删了又建,几乎晕厥,最后只能推翻重来。 为什么大牛写完的程序测试上线后,几乎完美运行,用户无懈可转载 2014-04-03 13:48:30 · 407 阅读 · 0 评论 -
学习基础的重要性
前三个年头基本上集中于Java基础的学习,包括设计模式,从完全不懂,到看的懂但似乎又不懂,到融汇贯通(也许还有欠缺,因为每次再翻一遍还是会有收获);由于没有研究过任何流行的框架,Struts,Spring, Hibernet等,也从没有尝试去研究过,所以那段时间时不时有SSH的兄弟用吃惊甚至略有嘲讽的口气跟我说“我是搞J2EE的,J2SE我没搞过。”;不过那时我一直秉承任何框架都是java写出来的转载 2014-06-05 13:08:38 · 616 阅读 · 0 评论 -
设计模式---工厂模式对比
这个就是原创 2014-06-10 16:44:25 · 483 阅读 · 0 评论 -
装饰模式 (wrapper )
装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 装饰模式的结构 装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任。换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不使用创造更多子类的情况下,将对象的功能加以扩展。 装饰模式的类图如下: 在装饰模式中的角色有: ●转载 2014-06-11 13:15:17 · 892 阅读 · 0 评论 -
合成模式
COMPOSITE: Mary今天过生日。“我过生日,你要送我一件礼物。” “嗯,好吧,去商店,你自己挑。” “这件T恤挺漂亮,买,这条裙子好看,买,这个包也不错,买。 “喂,买了三件了呀,我只答应送一件礼物的哦。” “什么呀,T恤加裙子加包包,正好配成一套呀,小姐,麻烦你包起来。” “……”, MM都会用Composite模式了,你会了没有? 合成模式:合成模式将对象组织到树原创 2014-06-11 09:52:06 · 405 阅读 · 0 评论 -
合成模式
合成模式属于对象的结构模式,有时又叫做“部分——整体”模式。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。合成模式 合成模式把部分和整体的关系用树结构表示出来。合成模式使得客户端把一个个单独的成分对象和由它们复合而成的合成对象同等看待。 比如,一个文件系统就是一个典型的合成模式系统。下图是常见的计算机XP文件系统的一部分。 从上转载 2014-06-11 10:34:46 · 517 阅读 · 0 评论 -
代理模式与装饰模式的异同
代理模式和装饰模式有很大的相似之处,看代理模式的类图,可以看做是代理模式的类图,也可以看做是装饰模式的类图,因为他们之间太像了,像到什么程度?把实现的代码改一下就是装饰模式,改回来就是代理模式。 追美女的一种方式是从她的朋友下手,让她的死党帮忙,那就离成功没有多远了。好,我们把她的死党作为这个美女的代理,开始的时候我们当然要和代理打交道了,我们用代理模式实现以下。定义一个接口,这个借口有一个转载 2014-06-11 14:28:49 · 425 阅读 · 0 评论 -
设计模式应用场景
追MM与设计模式 创建型模式 1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂转载 2014-06-10 23:27:09 · 490 阅读 · 0 评论 -
mingling
分类: 设计模式 2012-07-02 15:04 2890人阅读 评论(0) 收藏 举报 javacommandclassinterfacecmdaction 命令模式属于对象的行为模式。命令模式又称为行动(Action)模式或交易(Transaction)模式。 命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参转载 2014-06-15 23:58:34 · 466 阅读 · 0 评论