示例:黄明在气象局工作,黄明的女朋友收到天气信息后,准备去和黄明约会;黄明的母亲收到天气信息后,去购物。
首先我们需要定义观察者接口,代码如下:
1 | package com.wy.observer.example; |
接下来定义具体观察者,并实现观察者接口:
1 | package com.wy.observer.example; |
然后需要定义目标对象,以天气作为目标对象:
1 | package com.wy.observer.example; |
接着就是具体目标对象,继承目标对象:
1 | package com.wy.observer.example; |
最后编写客户端:
1 | package com.wy.observer.example; |
测试效果如下:
1 | 黄明的女朋友收到了明天天气晴朗,蓝天白云,气温28度,是我们的第一次约会,地点街心公园,不见不散哦 |
代码地址详见 PatternTest
参考资料:
GerryZhang 改造通用代码解决场景问题