b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

代码设计模式观察者模式(Observer-Pattern)t(2)

电脑杂谈  发布时间:2018-02-19 17:04:21  来源:网络整理

同样作为咱们的Subject主体,这里用List来存储咱们的观察者们,leader类实现Subject接口,分别是注册观察者

void registerObserver(Observer observer);

移除观察者

void removeObserver(Observer observer);

最后是咱们的通知观察者

代码设计的原则有哪些_java 设计模式书籍_代码设计模式

void notifyObserver(Object data);

OK,能者多劳嘛,咱们Leader类身为leader更应该以身作则,比较能干嘛。。。

完成编码,进入咱们的run测试阶段

public static void main(String[] args) {
        Leader leader = new Leader();
        Coder coder = new Coder();
        ProjectManager projectManager = new ProjectManager();
        leader.registerObserver(coder);
        leader.registerObserver(projectManager);
        leader.notifyObserver("Today is a holiday!");
        System.out.println("now leader remove project manager!");
        leader.removeObserver(projectManager);
        leader.notifyObserver("Overnight overtime today!");
    }

输出:

coder receive news:Today is a holiday!
Project Manager receive news:Today is a holiday!
now leader remove project manager!
coder receive news:Work overtime today!

毋需多说,你懂的

话说JDK里面java.util包下面有这个模式,可见此模式的普遍适用性和实用性,没事大家可以参考一波,这里就不一一列举了,不过和以上所述有一点初入的地方就是JDK中的Observable是一个类,不是接口,你如果想要使用原生的观察者,就得继承这个类,那么就限制了你的观察者对象的复用潜力,稍微违背了我们那么一丢丢“增加复用潜力”,“多用组合,少用继承”的设计动机哈~

感兴趣的同学可以去参考一波JDK源码


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-85285-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 贾诩文和
      贾诩文和

      尽管此后3年一蹶不振

    热点图片
    拼命载入中...