package Observer.jdk;import Observer.ConcreateSubject;/*** @author ngfngf*java实现与自己实现的对比* 1不需要再定义观察者和目标接口了,JDK帮忙定义* 2具体目标实现里面不需要再维护观察者的注册信息了*JDK咋在Observable已经帮忙实现好了* 3触发通知的方式有一点变化,要先调用setChanged(),这个是*JDK为了帮助实现更精确的触发控制而提供的功能* 4具体观察者的实现里面,update()其实能同时支持推模型和拉模型*这是JDK在定义的时候就已经考虑进去了**优* 1观察者和目标之间的抽象耦合* 2动态联动* 3支持广播通信**缺* 1可能引起误操作**本质:触发联动**场景:1当一个抽象模型有两个方面,其中一个方面的操作依赖于另一个方面的状态变化* 2如果在更改一个对象的时候,需要同时连带改变其他的对象,而不知道究竟有多少个对象需要被连带改变* 当一个对象必须通知其他的对象,但是你又希望这个对象和其他被通知的对象是松散耦合的**/public class Main {public static void main(String[] args) {//创建目标对象ConcreateWeatherSubject subject = new ConcreateWeatherSubject();//创建观察者ConcreateObserver observerGirl = new ConcreateObserver();observerGirl.setObserverName("范冰冰");ConcreateObserver observerMuml = new ConcreateObserver();observerMuml.setObserverName("我的老妈");//注册观察者subject.addObserver(observerMuml);subject.addObserver(observerGirl);//目标更新天气情况subject.setContent("明天天气晴朗,蓝天白云");}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。