
设计模式
文章平均质量分 56
airu
这个作者很懒,什么都没留下…
展开
-
每天一个(Java设计模式)-- Command模式
每一个模式,如果乍一看,可能都很好理解,但是却不知所用。一个好的模式,是从实践中的出来的,所以,要想很好的理解模式,就必须做很多的实际工作,在这些工作中去体会模式为什么是这样的。 事实上,当这些所谓的模式被抽象出来以后,就很难还原这个模式所解决问题的场景了。于是我们看到的都是些教学例子,看起来简单,实际上却并不理想,很可能看完就忘记了。 好了废话不多说,我并非是说理的,只是...原创 2012-03-14 18:52:43 · 100 阅读 · 0 评论 -
每天一个(设计模式)-- Proxy模式
设模技式中,往往都是通过增加一个中间层,解决问题。代理模式。本身就很清楚,代理就是要控制所代理的产品,或者是商品。那么对于面向对象来说,代理,就是要控制对象了。这种控制,不论是处于什么原因,事实就是,我们可能需要控制一些对象的行为,增加些行为调前的处理或者调用后的处理等等。如果仅从方法上看,感觉更像是拦截器。拦截一个方法,从中加入一些我们需要的东西。这么一说,就比如,我们在调用...原创 2012-03-15 16:08:00 · 73 阅读 · 0 评论 -
每天一个(设计模式)-- 单例模式
单例模式,应该是最简单但是也是用得很多的模式。当然,这个模式的实现也是五花八门,如果要考虑多种场合,那么也是非常的精彩。目前,很多这方面的文章写的也很好。我真的就不想班门弄斧了。所以连接如下:[url]http://www.iteye.com/topic/60179[/url]这里通过对多线程,类加载器,反射,序列化等各种情况下的单例做了讨论。实际的运用可能有那么复杂,但是...原创 2012-03-16 17:22:02 · 95 阅读 · 0 评论 -
每天一个(设计模式)--状态(State)模式
UML中有个图叫状态图,描述了对象的状态。一般来说,对于有状态的对象,在处理动作时,会根据不同的状态得到不同的行为结果。比如说,一扇旋转门,我们推,如果是关闭的,那么他就打开,如果我们再推,他就关闭。State设计模式,通过把状态封装,通过接口隔离,使得我们不需要用if else等语句硬编码。缺点是如果状态过多,那么将会有很多的状态类。状态模式的UML如下图所示:[im...原创 2012-03-19 22:24:03 · 188 阅读 · 0 评论 -
每天一个(设计模式)-- Adapter 模式(适配器模式)
适配器模式是最常用的设计模式之一。我们随处可以见到他的身影。例如Android中的某些监听器接口,还有著名的ListAdapter。适配器模式,实际上是一个接口转换模式。也就是我们要把一个接口转换为另外一个接口。也许你要问,为什么要这么做呢? 当然,我们也可以不必这么做,直接实现所需要的接口,不就成了吗? 对于一些教学上的例子来看,确实是这样,但是,如果要转换的接口很复杂,而且,我们很可能...原创 2012-03-25 23:28:54 · 93 阅读 · 0 评论 -
每天一个(设计模式)-- Bridge模式(桥接模式)
对于一个初学者来说,往往容易滥用类。一切皆类,所以,类在设计中便爆炸般增长了。对于这类问题,我们有很多模式来解决,但是我认为根本的还是要搞清楚,什么时候可以创建一个新的类。Martin大叔的 重构,Kent大叔的TDD,都给我们提出了一些解决方法。这里我们不讨论这么高深的问题,而是从GOF的设计模式入手,来看看,类是如何泛滥,又是如何通过桥接来解决的。这也正是面向对象中的关键之处。...原创 2012-03-26 18:23:06 · 164 阅读 · 0 评论 -
每天一个(设计模式)-- Observer模式(Publish/Subscribe模式)
今天这个模式,也是面试的时候问到的。其实这个模式最好理解。观察者,与被观察的物体,订阅者,与被订阅(发布)者。着这个模式下,我们实现了一对多的一个机制,并且可以针对对感兴趣的事情做订阅,或者观察,一旦有内容就自动通知。生活中这样的例子太多。在java中,也自带这个模式。我们还是先看看这个模式的UML:[img]http://dl.iteye.com/upload/att...2012-03-27 21:18:24 · 150 阅读 · 0 评论 -
每天一个(设计模式)-- Decorator模式
GOF的设计模式,讲的很细,我这里都很粗略。什么意图,别名,参与者,结构,协作,效果等等。。。我这等小民,也没有那么高深的理论,拾人牙慧就满足了。模式是死的,运用是活的。今天讲讲装饰器模式。其实 每个模式的名字都很重要,因为这个名字基本就说明了这个模式用来干什么。当然,装饰器,不是用来装饰的,但是和装饰相关。比如,我们设计一个窗子,完了,觉得太单调,于是重新加上边框,还觉得...2012-03-29 13:16:47 · 131 阅读 · 0 评论 -
每天一个(设计模式)--工厂模式与抽象工厂模式
工厂模式,属于创建型模式,我们不在自己创建对象,而是交由工厂来创建。这样的好处是,我们使用工厂来封装对对象的需求,否则,你可能写一大堆if else来判断,然后新增一个对象的话,又得改这段代码。简单的工厂模式就是,调用者对工厂说,给我一个A零件,工厂就创建一个A零件,调用者说,给我一个C零件,工厂就创建一个C零件。就这么简单。上图(借用别人的,学习目的:)):[img]...原创 2012-04-01 12:05:37 · 89 阅读 · 0 评论