设计模式学习笔记(二)- -观察者模式

来源:互联网 发布:flash cs6软件 编辑:程序博客网 时间:2024/06/08 15:44

[同系列文章]
1.设计模式学习笔记(一)- -策略模式

我又来了,续更ヾ(◍°∇°◍)ノ゙,接下来的内容是观察者模式的学习笔记

以下正文ヽ( ̄▽ ̄)ノ)

观察者模式

简要概括:书本以“气象站”为例,气象站–>天气数据对象–>布告板。其中,气象站更新数据的时候会通知天气数据对象更新数据,而天气数据对象则会将收到数据会通知N个布告板更新显示。这种“消息持有者”通知多个“消息接收者”的情况,可以进一步抽离为“观察者”模式。简单的说就是一对多的关系。

上图:
观察者模式类图

简要的代码:
1.原则,面向接口开发,so,写两个接口,一个“主题”(在Java里叫做:被观察者Observable),另外一个叫做“观察者”。

        public interface Subject{            public void registerObserver();//注册            public void removeObserver();//移除            public void notifyObservers();//通知观察者们        }    public interface Observer{        public void update(); //更新    }

2.然后实现这两个接口,超简单。

        public class ConcreteSubject implements Subject{        public void registerObserver(){        //注册        }        public void removeObserver(){        //移除        public void notifyObservers(){        //通知观察者们            }    }    public class ConcreteObserver implements Observer{        public void update(){        //更新        }    }

3.测试

........纳尼,被省略了?那...ni自己写吧2333

4.结束

嘤嘤嘤,文章这么短,莫非..?ε≡٩(๑>₃<)۶
其实重点就在于理解“一对多”的关系,搞明白了,你就懂得了所谓的观察者和被观察者,成功入门~~~好好看书,frighting!

原则:
1.为交互对象之间的松耦合设计而努力
2.见下章:) 设计模式学习笔记(三)–装饰者模式