//创建一个被观察者
Test subject = new Test();
//创建两个观察者
Observer  firstScreen = new FirstScreen();
Observer  secondScreen = new SecondScreen();

//把两个观察者加到被观察者列表中
subject.addObserver(firstScreen);
subject.addObserver(secondScreen);

//执行业务操作
subject.doBusiness();这个是我目前
有什么更好的办法,不用新增加一个观察者就new一个观察者对象..
即让代码有扩展性,任意添加观察者 不必过多修改原代码.
谢谢!

解决方案 »

  1.   

    不修改源代码,就使用配置文件,把所有的Observer都写到配置文件里面,然后通用反射new出来
      

  2.   

    使用 groovy/javascript 做配置文件,而不是 plain text。
      

  3.   


    那配置文件该怎么写呢? 这么吧,我把题目大意说下:有2个屏幕,当 subject.addObserver(firstScreen); 
     subject.doBusiness();结果显示:  请100号顾客到1号窗口办理业务!
    其中100是写死了的常量,几号窗口是变量.
    如果subject.addObserver(secondScreen); 则显示: 请100号顾客到2号窗口办理业务!如果还需要增加N个屏幕的话,我不想又新newN个屏幕对象放进去... 
    求指点~