您的位置:首页 > 其它

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

2011-05-24 16:20 375 查看
观察者:

//产品类

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);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: