当前位置: 首页 > news >正文 沈阳建站多少钱凡科建站网址 news 2025/10/28 9:51:04 沈阳建站多少钱,凡科建站网址,物流网站建设计划书,怎么把别人网站源码弄出来有个商城小程序#xff0c;用户希望当有新品上市的时候能通知他们。这样用户就可以不要时刻盯着小程序了。在这个场景中#xff0c;用户向小程序订阅了一个服务——发送新品短信。小程序在有新品上线时负责向订阅客户发出这个消息。 这就是发布-订阅模式#xff0c;也称观察… 有个商城小程序用户希望当有新品上市的时候能通知他们。这样用户就可以不要时刻盯着小程序了。在这个场景中用户向小程序订阅了一个服务——发送新品短信。小程序在有新品上线时负责向订阅客户发出这个消息。 这就是发布-订阅模式也称观察者模式。 1 观察者模式 是使用频率最高的设计模式之一。定义对象之间的一种一对多依赖关系使得每当一个对象状态发生改变时其相关依赖对象皆得到通知并自动更新。 图 观察者模式UML Subject,目标类。是指被观察的对象在目标中定义了一个观察者集合一个观察目标可以接受任意数量的观察者来观察它提供了一系列方法来增加和删除观察者对象同时定义了通知方法notify()目标类可以是接口也可以是抽象或具体类。 ConcreteSubject,具体目标。是目标类的子类通常包含有经常发生改变的数据。当它当状态发生改变时向其各个观察者发出通知。同时它还实现了在目标类中定义的抽象业务逻辑方法如果有。如果无须扩展目标类则具体目标类可以省略。 Observer观察者。观察者将对观察目标的改变做出反应。观察者一般定义为接口。该接口声明了更新数据的方法update()。 ConcreteObserver具体观察者。实现了Observer中声明的update()方法。通常在实现时可以调用具体目标类的attach()方法将自己添加到目标类的集合或通过detach()方法将自己从目标类的集合中删除。 public interface Observer {void update(String message); }public class MessageSubject {private final ListObserver observerList new ArrayList();public void attach(Observer observer) {this.observerList.add(observer);}public void detach(Observer observer) {this.observerList.remove(observer);}public void notifyObservers(String message) {for (Observer observer : observerList) {observer.update(message);}}}public class AppletMessageSubject extends MessageSubject {Overridepublic void notifyObservers(String message) {super.notifyObservers(message);System.out.println(小程序平台日志记录消息发送成功 message);} }public class ApiObserver implements Observer{Overridepublic void update(String message) {System.out.println(商品推送开始 message);}}public class UserObserver implements Observer{Overridepublic void update(String message) {System.out.println(好的。我知道了我准备购买: message);} }public class ShopWeb {public static void main(String[] args) {MessageSubject subject new AppletMessageSubject();Observer userObserver new UserObserver();Observer apiObserver new ApiObserver();subject.attach(userObserver);subject.attach(apiObserver);subject.notifyObservers(IPhone 15);subject.notifyObservers(Mate 16);}}//好的。我知道了我准备购买:IPhone 15 //商品推送开始IPhone 15 //小程序平台日志记录消息发送成功IPhone 15 //好的。我知道了我准备购买:Mate 16 //商品推送开始Mate 16 //小程序平台日志记录消息发送成功Mate 16 1.1 JDK 对观察者模式的支持 在JDK的java.util包中提供了Observable类以及Observer接口它们构成了JDK 对观察者模式的支持。 图 Observable的域与方法 图 Observer 接口 需求求职者订阅了某boss招聘软件职位发布信息当有新的职位发布时会通知给求职者。求职者收到信息后投递简历。 public class BossObservable extends Observable {Overridepublic void notifyObservers(Object arg) {super.setChanged();super.notifyObservers(arg);System.out.println(记录日志,职位信息推送成功 arg);} }public class EmployeeObserver implements Observer {private String name;public EmployeeObserver(String name) {this.name name;}Overridepublic void update(Observable o, Object arg) {System.out.println(name 。我钟意这个岗位 arg);}}public class Market {public static void main(String[] args) {Observable bossJob new BossObservable();Observer employee1 new EmployeeObserver(小李);Observer employee2 new EmployeeObserver(小吴);bossJob.addObserver(employee1);bossJob.addObserver(employee2);bossJob.notifyObservers(Java 开发);bossJob.notifyObservers(全栈开发);}}//小吴。我钟意这个岗位Java 开发 //小李。我钟意这个岗位Java 开发 //记录日志,职位信息推送成功Java 开发 //小吴。我钟意这个岗位全栈开发 //小李。我钟意这个岗位全栈开发 //记录日志,职位信息推送成功全栈开发 2 优缺点 优点 1在观察目标和观察者之间建立一个抽象的耦合。观察目标只需维持一个抽象观察者集合无须了解其具体观察者。 2观察者模式支持广播通信观察目标会向所有已注册的观察者对象发送通知。 缺点 1如果一个观察目标对象有许多观察者将所有观察者都通知到会花费很多时间。 2如果在观察者和观察目标之间存在循环依赖观察目标会触发它们之间进行循环调用可能导致系统奔溃。 3 适用场景 1一个对象的改变将导致一个或多个其他对象也发生改变而并不知道具体有多少对象及具体的对象。 2需要在系统中创建一个触发链A对象的行为将影响B对象B对象的行为将影响C对象…可以使用观察者模式创建一种链式触发机制。 文章转载自: http://www.morning.mhlsx.cn.gov.cn.mhlsx.cn http://www.morning.dphmj.cn.gov.cn.dphmj.cn http://www.morning.tkcct.cn.gov.cn.tkcct.cn http://www.morning.nspzy.cn.gov.cn.nspzy.cn http://www.morning.pzrpz.cn.gov.cn.pzrpz.cn http://www.morning.wpcfh.cn.gov.cn.wpcfh.cn http://www.morning.kjlia.com.gov.cn.kjlia.com http://www.morning.phzrq.cn.gov.cn.phzrq.cn http://www.morning.pghry.cn.gov.cn.pghry.cn http://www.morning.tbqbd.cn.gov.cn.tbqbd.cn http://www.morning.rykn.cn.gov.cn.rykn.cn http://www.morning.hwprz.cn.gov.cn.hwprz.cn http://www.morning.fddfn.cn.gov.cn.fddfn.cn http://www.morning.hmktd.cn.gov.cn.hmktd.cn http://www.morning.ejknty.cn.gov.cn.ejknty.cn http://www.morning.rmlz.cn.gov.cn.rmlz.cn http://www.morning.ujianji.com.gov.cn.ujianji.com http://www.morning.ftgwj.cn.gov.cn.ftgwj.cn http://www.morning.mjjty.cn.gov.cn.mjjty.cn http://www.morning.lpqgq.cn.gov.cn.lpqgq.cn http://www.morning.lonlie.com.gov.cn.lonlie.com http://www.morning.kgnrh.cn.gov.cn.kgnrh.cn http://www.morning.ghfmd.cn.gov.cn.ghfmd.cn http://www.morning.lpcct.cn.gov.cn.lpcct.cn http://www.morning.beeice.com.gov.cn.beeice.com http://www.morning.guofenmai.cn.gov.cn.guofenmai.cn http://www.morning.ztnmc.cn.gov.cn.ztnmc.cn http://www.morning.gyjld.cn.gov.cn.gyjld.cn http://www.morning.dsgdt.cn.gov.cn.dsgdt.cn http://www.morning.mcpdn.cn.gov.cn.mcpdn.cn http://www.morning.wdqhg.cn.gov.cn.wdqhg.cn http://www.morning.qhqgk.cn.gov.cn.qhqgk.cn http://www.morning.ebpz.cn.gov.cn.ebpz.cn http://www.morning.fmkbk.cn.gov.cn.fmkbk.cn http://www.morning.pmhln.cn.gov.cn.pmhln.cn http://www.morning.lzph.cn.gov.cn.lzph.cn http://www.morning.ypbp.cn.gov.cn.ypbp.cn http://www.morning.pwdmz.cn.gov.cn.pwdmz.cn http://www.morning.qjmnl.cn.gov.cn.qjmnl.cn http://www.morning.mmqhq.cn.gov.cn.mmqhq.cn http://www.morning.kphyl.cn.gov.cn.kphyl.cn http://www.morning.rkfgx.cn.gov.cn.rkfgx.cn http://www.morning.znknj.cn.gov.cn.znknj.cn http://www.morning.mysmz.cn.gov.cn.mysmz.cn http://www.morning.gcfrt.cn.gov.cn.gcfrt.cn http://www.morning.rcjyc.cn.gov.cn.rcjyc.cn http://www.morning.tqdlk.cn.gov.cn.tqdlk.cn http://www.morning.mzzqs.cn.gov.cn.mzzqs.cn http://www.morning.fzwf.cn.gov.cn.fzwf.cn http://www.morning.jtkfm.cn.gov.cn.jtkfm.cn http://www.morning.lqljj.cn.gov.cn.lqljj.cn http://www.morning.kttbx.cn.gov.cn.kttbx.cn http://www.morning.kyzja.com.gov.cn.kyzja.com http://www.morning.kgrwh.cn.gov.cn.kgrwh.cn http://www.morning.fkcjs.cn.gov.cn.fkcjs.cn http://www.morning.krkwh.cn.gov.cn.krkwh.cn http://www.morning.jjhrj.cn.gov.cn.jjhrj.cn http://www.morning.kdgcx.cn.gov.cn.kdgcx.cn http://www.morning.lxqyf.cn.gov.cn.lxqyf.cn http://www.morning.mcjyair.com.gov.cn.mcjyair.com http://www.morning.lqlhw.cn.gov.cn.lqlhw.cn http://www.morning.xmbhc.cn.gov.cn.xmbhc.cn http://www.morning.wnjrf.cn.gov.cn.wnjrf.cn http://www.morning.wkmpx.cn.gov.cn.wkmpx.cn http://www.morning.lsnbx.cn.gov.cn.lsnbx.cn http://www.morning.gbybx.cn.gov.cn.gbybx.cn http://www.morning.ttcmdsg.cn.gov.cn.ttcmdsg.cn http://www.morning.tlnbg.cn.gov.cn.tlnbg.cn http://www.morning.tphrx.cn.gov.cn.tphrx.cn http://www.morning.wlqbr.cn.gov.cn.wlqbr.cn http://www.morning.rykn.cn.gov.cn.rykn.cn http://www.morning.dpdns.cn.gov.cn.dpdns.cn http://www.morning.rszt.cn.gov.cn.rszt.cn http://www.morning.nlzpj.cn.gov.cn.nlzpj.cn http://www.morning.cczrw.cn.gov.cn.cczrw.cn http://www.morning.ytmx.cn.gov.cn.ytmx.cn http://www.morning.dwwbt.cn.gov.cn.dwwbt.cn http://www.morning.qmnjn.cn.gov.cn.qmnjn.cn http://www.morning.gtdf.cn.gov.cn.gtdf.cn http://www.morning.rsfp.cn.gov.cn.rsfp.cn 查看全文 http://www.tj-hxxt.cn/news/256345.html 相关文章: 深圳做积分商城网站公司40个界面ui外包多少钱 做网站499泰安肥城网站建设 北流网站建设wordpress加一个字段 淮安汽车网站制作适合女生的长久职业 请问做卖东西网站怎么wordpress div layer 网站开发中网页之间的链接形式seo的推广技巧 大家都在哪些网站做宣传wordpress get tags 电子商务网站开发的预期目标网站在百度搜索不到 静态html网址网站导航源码wordpress获取文章图片 机械类产品网站做优化网络营销项目策划方案 关于网站备案的公告做联轴器的网站 企石镇做网站做网站的优化价格 重庆建站公司价钱企业网站的基本内容 城市建设的网站 政策法规重庆江北网站建设公司 怀柔建设网站公司wordpress支持 租车网站制作方案青海网站建设西宁网络科技公司 站酷网下载企业网站只用静态页 网站运营系统网上营销推广方案 长春网站建设硕成传媒网站的系统建设方式有哪些 如何运用网站模板上海网站建设咨询报价 教人如何做吃的网站门户网站建设工作讲话 国内p2p网站建设怎样做软件网站 网站备案目的有没有专门招代理的网站 微信商城网站怎么开发东莞网站建站服务公司 做关于时尚网站的目的福州市工程建设监督站网站 免费网站正能量软件2024最火的十大新闻有哪些 做网站时候图片和视频放在哪里无锡制作网站公司简介 山东住房和城乡建设部网站网站百度一直没有收录 购物网站排名哪家好建设移动网站 公司网站建设费用预算商城系统 wordpress嵌入