常用设计模式

 【模板方法】===============================================

定义算法框架,具体实现延迟子类中,使得子类可以在不改变算法结构的情况下,重新定义某些步骤。

 

策略模式都封装算法,它使用组合,模板方法使用继承;

工厂方法是特殊的模板方法;


【策略模式】

定义算法簇,封装起来,可以相处替换,让算法的变化可以独立于客户。

 

区分应用中变化和不变的部分;

针对接口编程,不针对实现编程;

多用组合,少用继承。


 

【观察者模式】================================================

在对象中定义一对多的依赖,这样当一个对象改变状态,依赖他的对象就会受到通知,自动更新。

 

JDK中,java.util中的observable类和observer接口以及一些Swing组件(Jbutton)

JDK中实际上有一个对Observer模式的简单的实现:就是类java.util.Observerable和接口java.util.Observerjava.util.Observerable类对应于Subject,而java.util.Observer就是观察者了。JDK中并没有把这两个部分都设计为接口,而是让类java.util.Observerable提供了部分的实现,简化了许多编程的工作。当然,这也减少了一定的灵活性。 

因而在Java中应用Observer就很简单了,需要做的是:让需要被观察的Subject对象继承java.util.Observerable,让需要观察的对象实现java.util.Observer接口,然后用java.util.ObserverableaddObserver(Observer obj)方法把Observer注册到Subject对象中。这已经完成了大部分的工作了。然后调用java.util.ObserverablenotifyObservers(Object arg)等方法,就可以实现Observer模式的机理。


【装饰者模式】======================================================

动态地将责任添加到对象上。扩展功能的首选。

 

JDK中的java.io就是装饰模式的实例


【单例模式】========================================================

只允许存在一个实例

 

【抽象工厂】

【工厂方法】=======================================================

抽象工厂提供一个接口,创建相关或依赖的对象家族,不需明确指出具体类;

工厂方法定义创建对象的接口,但由子类决定实例化的类,将实例化推迟到子类。



posted @ 2012-04-17 18:37  Keosu  阅读(254)  评论(0编辑  收藏  举报