设计模式总结

模式:
主要的作用是实现代码的重复使用,而不是为了提高性能,模式不能保证性能得到优化。
 
第一篇:
  创建模式:

1)。简单工厂模式:
 
  使用条件(不是必须的)
:所有的子类实现共同的接口。
使用方法:客户端得到工厂(得到的方法有很多,比如JNDI,工厂的static方法,直接创建工厂等等)
升级:增加新的子类,从原有的接口派生新的子类,当然也可以从原有的子类派生。
工厂:1。直接修改工厂(次方法有时候不可取)
            2。从工厂派生新的工厂
注意:工厂不一定是实类,可以是抽象类
2)。抽象工厂模式:
  次模式进一步抽象了,定义抽象工厂和抽象接口
  用户可以扩张工厂和创建新的子类。
一般的使用条件是存在多个产品簇的时候(多个子类接口)
使用方法:用户创建具体工厂的,可以造型到抽象工厂类,
其实和简单工厂相比:
  a.实现产品的簇化,也就是可以增加新的类别的产品接口,而不是增加某一个子类。
  b.将创建子类实例的工作交给抽象工厂的实现工厂了,可以认为对工厂的创建也采用简单工厂的设计模式。
  升级:基本可以参考简单工厂模式。
3)。单一模式(有限模式)
  使用条件:控制实例的数量
  该类必须提供自己实例,允许其他的类访问该实例。
  使用的方法:一般不直接new,而访问该类的static变量或者方法。该模式很简单
  但是注意有2种创建方式:
  a.该类在载入的时候就创建该类的实例(俄汉模式):资源利用可能不好,但是响应的速度快
  b.在载入的时候不创建,只有有客户端需要该实例的时候才创建(懒汉模式):刚好和上面的相反
4)。builder模式
  该模式和简单工厂模式很相似。
  但是该模式注重的时候复杂对象的创建,而不是象工厂模式那样注重:返回一系列相关的子类实例
  使用方法和简单工厂模式差不多。
第二篇   结构模式
1)。外观模式
  就是为一系列的类提供一个统一的接口
为一个子系统提供一个供外部调用的统一接口,当要升级的时候,只要改变接口或者其实现就可以了。
其实在工厂的创建模式里面;子类从接口派生的时候就采用了fascade模式
使用方法:创建子类而返回共同的接口
  该模式比较简单
2)。变压器模式
使用条件:希望将不同的接口或者类联系起来的时候
使用方法:实现变压器(一般是一个实类,实现或者继承目标,依赖或者实现源)
当变压器继承目标类的时候称为实例变压器,此时如果要改变目标的话就得重新实现一个变压器
当变压器实现目标接口的时候称为类变压器,此时如果改变目标接口可以事先让变压器实现多个接口目标
在变压器处理方法中,可以接受源的共同的接口或者抽象类(采用外观模式),这样可以实现多个源于多个目标
的对应。

posted on 2010-07-29 17:15  不悔的青春  阅读(335)  评论(0编辑  收藏  举报

导航