今天看了看设计模式。看的是“设计模式(Patterns in Java)”,还算简单。不过没有看完。

学到了几个模式:Factory、Prototype、Builder、Singleton、Facade(外观)、Proxy、Adapter。

又看了看电子书中剩下的几个模式:Composite(组合)Decorator(油漆工)BridgeFlyweight(享元)TemplateMemento(备忘机制)ObserverChain of Responsibility(职责链)CommandStateStrategy(策略)Mediator(中介者)Interpreter(解释器)Visitor。(这些模式还真多,头大了)

根据我今天学习设计模式,把自己的学习得到的结果写出来,只是目前阶段的理解,可能不是很全面。

还是说说看过的几个模式吧。第一个是Factory。有点印象,以前在接触spring时第一个认识的就是这个Factory。工厂模式中有: 工厂方法(Factory Method) 抽象工厂(Abstract Factory)。不用new来创建对象,通过工厂类的静态公用方法返回一个目标类的实例对象来获得对象。这样使类的实例化集中起来,使代码更加灵活。

第二个是Prototype。Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。说句实在话我没有弄明白。那个看似著名的勺子例子程序看的明白,但不懂他的意图。看来只有在用的时候才能真想明白。现在先略过。

第三个是Builder。Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们.用户不知道内部的具体构建细节.Builder模式是非常类似抽象工厂模式,细微的区别大概只有在反复使用中才能体会到.车的零件和成品车在builder中,而组装的过程被分离到Director 中,如果有那个零件有问题由Director类来检查并修复,最终组装成成品车。

第四个是Singleton。Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。实现上是在类内创建私有的自己的对象,而通过类名.getInstance()静态方法获得这个私有的自己的对象以供使用。

以上四个设计模式中的创建模式,下面我要说的是结构模型。

第五个是Facade(外观)。为子系统中的一组接口提供一个一致的界面.例子里:把常用的数据库连接的代码放在单独的一个类里,然后其他的使用数据库连接的地方都来调用这个接口,以达到降低系统的复杂性,增加了灵活性的效果.

第六个是Proxy。为其他对象提供一种代理以控制对这个对象的访问.Proxy是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结构,Proxy是代理的意思,我们也许有代理服务器等概念,代理概念可以解释为:在出发点到目的地之间有一道中间层,意为代理.这个模式是个有用的模式。分析一下例子程序:类ForumPermissions为判断用户的权限提供依据和方法;类ForumProxy实现Forum接口来验证用户的权限,并决定是否要执行用户的请求。DbForum也实现Forum接口,是Forum的真正实现,提供了实现用户请求的执行代码,包括数据库的也在这里完成。类ForumFactoryProxy是结合了Factory和Proxy两种模式。

第七个是Adapter。将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份.感觉没什么意思。

如果有指点的话请跟帖。拜谢!

 posted on 2008-10-31 15:22  侯Vincent  阅读(70)  评论(0编辑  收藏  举报