设计模式(观察者)自己写的例子

来源:互联网 发布:印度软件外包产值 编辑:程序博客网 时间:2024/04/28 04:46

观察者:


//产品类
public class Products extends Observable {
    private Man man;
    private Women women;

    public Man getMan() {
        return man;
    }

    public void setMan(Man man) {
        this.man = man;
        setChanged();
        notifyObservers(man);
    }

    public Women getWomen() {
        return women;
    }

    public void setWomen(Women women) {
        this.women = women;
        setChanged();
        notifyObservers(women);
    }

}

 

被观察者:


public class ManObserver implements Observer {

    @Override
    public void update(Observable o, Object arg) {
        if(arg instanceof Man){
            Man man=(Man)arg;
           System.out.println("man property is changed:"+man);
        }

    }

}

 

public class WomenObserver implements Observer {

    @Override
    public void update(Observable o, Object arg) {
        System.out.println("o--------------------------->"+o.toString());
        if(arg instanceof Women){
            Women women=(Women)arg;
            System.out.println("women property is changed:"+women);
        }

    }

}

 

业务类;
public class ProductsTest {

    public static void main(String[] args) {
        Man man=new Man();
        man.setName("wei");
        man.setAge(26);
        man.setGirlname("marris");
        man.setHobby("乒乓球");
        man.setIsvirgin(true);
        Women women=new Women();
        women.setName("marris");
        women.setAge(24);
        women.setBoyname("wei");
        women.setHobby("皮球");
        women.setIsvirgin(true);
       
        Products p=new Products();
        ManObserver mam=new ManObserver();
        WomenObserver womenObserver=new WomenObserver();
        p.addObserver(mam);
        p.addObserver(womenObserver);
       
        p.setMan(man);
        p.setWomen(women);
       
    }

}

原创粉丝点击