java设计形式之观察者模式(2)
java设计模式之观察者模式(2)
大家看这篇文章的时候应该看过[java设计模式之观察者模式(1)]了吧,应该会有疑问吧。
如果大家仔细看了[java设计模式之观察者模式(1)],应该会看到一个死循环,这样你运行几次试试,你的机器很快会很卡,哈哈,而且(1)中的代码是面向过程的。
既然我们知道了错误,那我们应该怎么样修正呢。
我们用高科技手段,做一个芯片植入到对手的脑袋里,哈哈
开始改造代码。
我们先制作芯片:
package spring3.event; public class Chip { // 我是芯片报告的对象 private Me me = new Me(); public void callMeDoKungFu() { System.out.println("芯片报告:他开始练习武术了"); me.doKungFu(); } public void callMeDoStudy() { System.out.println("芯片报告:他开始提高智商了"); me.doStudy(); } }
将芯片植入到他大脑进行监视
package spring3.event; public class Him { private Chip chip = new Chip(); public void doKungFu() { System.out.println("他:开始练习武术了..."); chip.callMeDoKungFu(); } public void doStudy() { System.out.println("他:开始提高智商了..."); chip.callMeDoStudy(); } }
我还是以前的我,没有变化哈哈
package spring3.event; public class Me { public void doKungFu() { System.out.println("我要练克制他的武术..."); } public void doStudy() { System.out.println("我要学习比他高的知识..."); } }
现在来测试
package spring3.event; public class Test { public static void main(String[] args) { Him him = new Him(); him.doKungFu(); System.out.println(); him.doStudy(); } }
测试结果:
他:开始练习武术了... 芯片报告:他开始练习武术了 我要练克制他的武术... 他:开始提高智商了... 芯片报告:他开始提高智商了 我要学习比他高的知识...
这样你的cpu就不会飙升了,哈哈