【设计模式】简述策略模式、观察者模式、装饰者模式、工厂方法模式

一、策略模式:

定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。

专门提供某行为接口的实现。

“有一个”比“是一个”好


二、观察者模式

定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会受到通知并自动更新。

JavaBean和Swing中都用到了观察者模式。GUI框架、RMI

Java的内置观察者模式:

    被观察者要extends继承 java.util.Observable类,用到registerOberver(Oberver o) ; setChanged()和 notifyObservers() 或 notifyObservers(Object arg)


private ArrayList observers;

public void registerOberver(Oberver o){

     observers.add(o);

}

public void removeObserver(Oberver o){

 int i = observers.indexOf(o);

 if(i >= 0){

  observers.remove(i);

 }

}

public notifyObservers(){

 for (int i=0;i<observers.size() ;i++ ) {

  Oberver observer = (Oberver)observers.get(i);

  observer.update(data1,data2);

 }

}

    观察者要implements java.util.Observer 接口,用到 update(Observable o,Object arg);


三、装饰者模式

动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。

Java IO

组合和委托可以在运行时动态地加上新的行为。

装饰者反映出被装饰的组件类型(二者具有相同的类型,都经过接口或继承实现)


四、

工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,工厂方法让类把实

例化推迟到子类。

简单工厂:工厂处理创建对象的细节。

抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。

        工厂方法是抽象的,依赖继承它的子类来处理对象的创建。创建一系列产品

此条目发表在设计模式分类目录,贴了标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注