个人觉得设计模式只是一种设计方式的总结,正如大多数人说的用了不一定就程序很好。好的程序是有标准的:功能性,稳定性,效率性,可维护和可扩展性,以及可读性。把简单的功能写的复杂人人都会,复杂的功能用简单的代码描述出来,却不是个个都行。所以设计模式为我们提供了一种方式和一种标杆。

 6.代理模式:书中描述是代理类实现与被代理的类相同的接口,代理类通过合成被代理类,就实现被代理的类的功能,有点象装饰模式,只是装饰强调对原有功能的扩展,而代理强调了隐蔽功能。

Code

 这个让我联想到多层架构中的IDAL,BLL,DALFactory三层,DALFactory实现IDAL定义的接口,而BLL间接实现了IDAL接口中的功能,提供给表现层使用,同时BLL也扩展了其它功能,是不是有点代理的味道。我觉得大多数人看到代理模式就会想到WebService中的代理类的用途。我觉得它可以用在业务类软件中,用来对业务算法进行封闭,然后把算法集中放在一个远程可管理的服务器上。这样不会被使用者或者故意破坏者得知其中的业务细节。

7.工厂模式:讲到工厂模式就得先介绍简单工厂模式,他们应该是算一个系列吧。简单工厂是通过继承同一接口而实现不同对象,例如:

Code

而其实例化需要通过判断语句实现。

Code

工厂模式就是为了解决其实例化的问题产生的,因为上面的实例化违反了开闭原则,随着需求的增加要不停的增加判断

分支。所以工厂模式就增加了工厂类,这样可以同一类的实例化,同时也对客户端进行统一调用。代码如下:

Code

 这样就实现了对简单工厂的实例化问题的解决。

8.原型模型:主要是通过对于已有对象进行复制,封闭复制细节。.net中主要通过实现System.ICloneable对实例进行的复制,相关技术也就深拷贝和浅拷贝了,用的很少。 

posted on 2009-03-25 10:12  复用软件  阅读(1499)  评论(13编辑  收藏  举报