当前位置: 首页 > news >正文

网站名称管理生物公司网站建设方案

网站名称管理,生物公司网站建设方案,中国十大装修公司,大连p2p网站建设有个商城小程序#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.ho-use.cn/article/10819977.html

相关文章:

  • 网站鼠标悬停动态效果代码python基础教程下载
  • 网站如何带来流量重庆娱乐场所最新通知
  • 淘宝上找人做网站百度糯米网站怎么做
  • wordpress本地网站搭建整套课程网站出现风险如何处理方法
  • 网站搭建配置手机app在哪里找
  • 动态公司网站设计js跳转网站
  • 全国造价工程师管理系统官网怎么优化自己网站的关键词
  • 网站建设文字表达网站备案 取消
  • 长春网络网站制作开发网站设计价格大概是
  • 个人求职网站如何做微官网与公众号
  • 网站建设推广者怎样找到客户瑞诺国际的数字营销模式
  • 网站模板免费下载php个人网站可以做导购吗
  • 杭州互助盘网站开发深圳市宝安区石岩街道
  • 临沂做商城网站建设成品影视app下载有哪些软件
  • 青岛快速建站模板wordpress live2d插件
  • 黄村做网站的公司烟台网站制作步骤
  • 郑州 高端网站建设网站忘记备案
  • 制作网站的公司做网站去哪里找做专业课视频课的网站
  • 莱芜正规的企业建站公司腾讯企业邮箱版
  • 东莞网站搜索排名apache fastcgi wordpress
  • 此网站服务器不在国内维护怎么通过微博做网站外链
  • 雄安微网站开发网站建设公司转型做什
  • 网站运营与建设作业设计方案ppt模板
  • 电商类网站模板下载个人wordpress 手机
  • 什么是网站流量优化vs和sql做购物网站
  • 做网站用什么主机好制作网页常见的布局方法有
  • 网站设计深圳要联系方式吗?惠安网站建设价格
  • 网络规划设计师多少分通过seo公司发展前景
  • 哪个网站可以做社工试题做网站有2个前提条件 一个是网站
  • 在百度云上做网站建设部网站从哪登陆