代码改变世界

策略模式

2011-07-26 17:10 by 卫佳, 254 阅读, 0 推荐, 收藏, 编辑
摘要:MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0策略模式(Strategy)属于对象行为型设计模式,主要是定义一系列的算法,把这些算法一个个封装成拥有共同接口的单独的类,并且使它们之间可以互换。策略模式使这些算法在客户端调用它们的时候能够互不影响地变化。这里的算法不要狭义的理解为数据结构中算法,可以理解为不同的业务处理方法。这种做法会带来什么样的好处呢?它将算法的使用和算法本身分离,即将变化的具体算法封装了起来,降低了代码[CheapReadingglasses]的耦合度,系统业务策略的更变仅需少量修改。算法被提取出来,这样可 阅读全文

访问者模式

2011-07-26 17:09 by 卫佳, 408 阅读, 0 推荐, 收藏, 编辑
摘要:MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0对于系统中一个已经完成的类层次结构,我们已经给它提供了满足需求的接口。但是面对新增加的需求,我们应该怎么做呢?如果这是为数不多的几次变动,而且你不用为了一个需求的调整而将整个类层次结构统统地修改一遍,那么直接在原有类层次结构上修改也许是个不错的主意。但是往往我们遇到的却是:这样的需求变动也许会不停的发生;更重要的是需求的任何变动可能都要让你将整个类层次结构修改个底朝天……。这种类似的操作分布在不同的类里面,不是一个好现象,我们要对这个结构重构一下了。那么,访问者模式也许是你很好的 阅读全文

模板模式

2011-07-26 17:08 by 卫佳, 197 阅读, 0 推荐, 收藏, 编辑
摘要:MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0 这是一个很简单的模式,却被非常广泛的使用。之所以简单是因为在这个模式中仅仅使用到了继承关系。继承关系由于自身的缺陷,被专家们扣上了“罪恶”的帽子。“使用委派关系代替继承关系”,“尽量使用接口实现而不是抽象类继承”等等专家警告,让我们这些菜鸟对继承“另眼相看”。其实,继承还是有很多自身的优点所在。只是被大家滥用的似乎缺点更加明显了。合理的利用继承关系,还是能对你的系统设计起到很好的作用的。而模板方法模式就是其中的一个使用范例。二、定义与结构模板方法(TemplateMethodB 阅读全文

迭代器模式

2011-07-25 16:43 by 卫佳, 205 阅读, 0 推荐, 收藏, 编辑
摘要:MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0迭代这个名词对于熟悉Java的人来说绝对不陌生。我们常常使用JDK提供的迭代接口进行javacollection的遍历:Iteratorit=list.iterator();while(it.hasNext()){//using“it.next();”CheapReadingglasses}而这就是关于迭代器模式应用很好的例子。二、定义与结构迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个 阅读全文

备忘录模式

2011-07-25 16:41 by 卫佳, 344 阅读, 0 推荐, 收藏, 编辑
摘要:MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0俗话说:世上难买后悔药。所以凡事讲究个“三思而后行”,但总常见有人做“痛心疾首”状:当初我要是……。如果真的有《大话西游》中能时光倒流的“月光宝盒”,那这世上也许会少一些伤感与后悔——当然这只能是痴人说梦了。但是在我们手指下的程序世界里,却有的后悔药买。今天我们要讲的备忘录模式便是程序世界里的“月光宝盒”。二、定义与结构备忘录(ReadingGlasseswithCase)模式又称标记(Token)模式。GOF给备忘录模式的定义为:在不破坏封装性的前提下,捕获一个对象的内部状态, 阅读全文

调停者模式

2011-07-25 16:41 by 卫佳, 514 阅读, 0 推荐, 收藏, 编辑
摘要:MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0MediatorPattern中文译为“中介者模式”、“调停者模式”。其实都不是很好,由于现实生活中的“中介”是要和客户打交道,而省去客户原本繁琐的手续,这一点和门面模式的初衷很相像;而在MediatorPattern中Mediator是不可见的。“调停”也不好,因为Mediator在程序中存在的初衷仅仅是规范信息传递的方式。因此叫做“传递器模式”仿佛更能体贴一些,但是本文还是称其为“调停者模式”。二、定义与结构SunglassesWholesale给调停者模式下的定义是:用一个 阅读全文

观察者模式

2011-07-25 16:40 by 卫佳, 440 阅读, 0 推荐, 收藏, 编辑
摘要:还记得警匪片上,匪徒们是怎么配合实施犯罪的吗?一个团伙在进行盗窃的时候,总有一两个人在门口把风——如果有什么风吹草动,则会立即通知里面的同伙紧急撤退。也许放风的人并不一定认识里面的每一个同伙;而在里面也许有新来的小弟不认识这个放风的。但是这没什么,这个影响不了他们之间的通讯,因为他们之间有早已商定好的暗号。呵呵,上面提到的放风者、偷窃者之间的关系就是观察者模式在现实中的活生生的例子。二、定义与结构观察者(AcetateSunglasses)模式又名发布-订阅(Publish/Subscribe)模式。GOF给观察者模式如下定义:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有 阅读全文

代理模式

2011-07-22 17:11 by 卫佳, 205 阅读, 0 推荐, 收藏, 编辑
摘要:MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0 我们去科技市场为自己的机器添加点奢侈的配件,很多DIYer都喜欢去找代理商,因为在代理商那里拿到的东西不仅质量有保证,而且价格和售后服务上都会好很多。客户通过代理商得到了自己想要的东西,而且还享受到了代理商额外的服务;而生产厂商通过代理商将自己的产品推广出去,而且可以将一些销售服务的任务交给代理商来完成(当然代理商要和厂商来共同分担风险,分配利润),这样自己就可以花更多的心思在产品的设计和生产上了。在美国,任何企业的产品要想拿到市场上去卖就必须经过代理商这一个环节,否则就是非法 阅读全文

责任链模式

2011-07-22 17:10 by 卫佳, 313 阅读, 0 推荐, 收藏, 编辑
摘要:MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0引言初看责任链模式,心里不禁想起了一个以前听过的相声:看牙。说一个病人看牙的时候,医生不小心把拔下的一个牙掉进了病人嗓子里。各个科室的医生推卸责任,搞得病人因此楼上楼下的跑了不少冤枉路,最后无果而终。责任链模式就是这种“推卸”责任的模式,你的问题在我这里能解决我就解决,不行就把你推给另一个对象。至于到底谁解决了这个问题了呢?我管呢!二、定义与结构从名字上大概也能猜出这个模式的大概模样——系统中将会存在多个有类似处理能力的对象。当一个请求触发后,请求将在这些对象组成的链条中传递,直 阅读全文

命令模式

2011-07-22 17:10 by 卫佳, 195 阅读, 0 推荐, 收藏, 编辑
摘要:MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0命令模式是从界面设计中提取出来的一种分离耦合,提高重用的方法。被认为是最优雅而且简单的模式,它的应用范围非常广泛。让我们一起来认识下它吧。先从起源说起。在设计界面时,大家可以注意到这样的一种情况,同样的菜单控件,在不同的应用环境中的功能是完全不同的;而菜单选项的某个功能可能和鼠标右键的某个功能完全一致。按照最差、最原始的设计,这些不同功能的菜单、或者右键弹出菜单是要分开来实现的,你可以想象一下,Cheapsunglasseswholesale文档上面的一排菜单要实现出多少个“形似 阅读全文
上一页 1 2 3 4 5 6 ··· 22 下一页