日期:2014-05-20  浏览次数:20679 次

关于观察者模式
Java code

            //创建一个被观察者
        Test subject = new Test();
        //创建两个观察者
        Observer  firstScreen = new FirstScreen();
        Observer  secondScreen = new SecondScreen();
        
        //把两个观察者加到被观察者列表中
        subject.addObserver(firstScreen);
        subject.addObserver(secondScreen);
        
        //执行业务操作
        subject.doBusiness();


这个是我目前
有什么更好的办法,不用新增加一个观察者就new一个观察者对象..
即让代码有扩展性,任意添加观察者 不必过多修改原代码.
谢谢!

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

------解决方案--------------------
使用 groovy/javascript 做配置文件,而不是 plain text。
------解决方案--------------------
如果不用配置文件,你想如何让程序自动化,程序总该要有个途径知道这些观察者的来源吧,要不然程序怎么知道你想新增什么观察者?