烘焙食品网站建设需求分析网站接入空间
2026/1/13 6:33:10 网站建设 项目流程
烘焙食品网站建设需求分析,网站接入空间,网站模板 html5,wordpress nana观察者模式应用场景 在我们开发的过程中#xff0c;经常会遇到一些当什么什么事情发生的时候#xff0c;然后做什么什么事。比如某种商品的物价上涨时会导致部分商家高兴#xff0c;而消费者伤心。 代码示例 抽象被观察者类 package com.demo.test.observe.abs;import java.…观察者模式应用场景在我们开发的过程中经常会遇到一些当什么什么事情发生的时候然后做什么什么事。比如某种商品的物价上涨时会导致部分商家高兴而消费者伤心。代码示例抽象被观察者类package com.demo.test.observe.abs; import java.util.ArrayList; import java.util.List; public abstract class Subject { private ListObserve observeList new ArrayList(); public void attach(Observe observe){ this.observeList.add(observe); }; public void detach(Observe observe){ this.observeList.remove(observe); }; public void allNotify(){ for(Observe observe:observeList){ observe.update(); } } }抽象观察者类package com.demo.test.observe.abs; public abstract class Observe { public abstract void update(); }具体被观察者类package com.demo.test.observe; import com.demo.test.observe.abs.Subject; import java.util.List; public class SubjectA extends Subject { }具体观察者1package com.demo.test.observe; import com.demo.test.observe.abs.Observe; public class StudentObserve extends Observe { public void update(){ System.out.println(老师来了快坐好); } }具体观察者2package com.demo.test.observe; import com.demo.test.observe.abs.Observe; public class StudentBObserve extends Observe { Override public void update() { System.out.println(老师来了别吃了); } }客户端package com.demo.test.observe; import com.demo.test.observe.abs.Observe; import com.demo.test.observe.abs.Subject; public class Client { public static void main(String[] args){ Subject subjectA new SubjectA(); Observe studentObserve new StudentObserve(); subjectA.attach(studentObserve); subjectA.attach(new StudentBObserve()); subjectA.allNotify(); } }JAVA 自带的观察者类被观察者package com.demo.test.observe.javaObserve; import java.util.Observable; public class Subject1 extends Observable { public void change(){ setChanged(); //如果不执行setChanged就不会调用update函数。 } }观察者Apackage com.demo.test.observe.javaObserve; import java.util.Observable; import java.util.Observer; public class ObserveA implements Observer { Override public void update(Observable o, Object arg) { System.out.println(java 自带观察者A); } }观察者Bpackage com.demo.test.observe.javaObserve; import java.util.Observable; import java.util.Observer; public class ObserveB implements Observer { Override public void update(Observable o, Object arg) { System.out.println(java 自带观察者B); } }客户端package com.demo.test.observe.javaObserve; import java.util.Observable; import java.util.Observer; public class Client { public static void main(String[] args){ Subject1 subject new Subject1(); Observer observerA new ObserveA(); Observer observerB new ObserveB(); subject.addObserver(observerA); subject.addObserver(observerB); //这一步主要调用里面的setChanged否则update不执行。setChanged必须在Observable继承类内执行因为它是protected修饰的。 subject.change(); subject.notifyObservers(); } }© 著作权归作者所有,转载或内容合作请联系作者平台声明文章内容如有图片或视频亦包括在内由作者上传并发布文章内容仅代表作者本人观点简书系信息发布平台仅提供信息存储服务喜欢的朋友记得点赞、收藏、关注哦

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询