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

乐清建设网站在线设计平台用户规模

乐清建设网站,在线设计平台用户规模,网站运营怎样做,澄海网站建设公司文章目录 1、简介2、观察者模式简单实现抽象主题#xff08;Subject#xff09;具体主题#xff08;ConcreteSubject#xff09;抽象观察者#xff08;Observer#xff09;具体观察者#xff08;ConcrereObserver#xff09;测试#xff1a; 观察者设计模式优缺点观察… 文章目录 1、简介2、观察者模式简单实现抽象主题Subject具体主题ConcreteSubject抽象观察者Observer具体观察者ConcrereObserver测试 观察者设计模式优缺点观察者模式的优点包括观察者模式的缺点包括 1、简介 观察者模式是一种行为型设计模式它定义了一种一对多的依赖关系当一个对象的状态发生改变时它的所有依赖者都会收到通知并自动更新。(MQ和它有点像) 当对象间存在一对多关系时则使用观察者模式Observer Pattern。比如当一个对象被修改时则会自动通知依赖它的对象。观察者模式属于行为型模式。 观察者模式中一共有四种角色 Subject抽象主题也称为被观察者或可观察者它是具有状态的对象并维护着一个观察者列表。抽象主题角色把所有观察者对象保存在一个集合里每个主题都可以有任意数量的观察者。主题提供了添加、删除和通知观察者的方法。一般用一个抽象类或者一个接口实现Observer抽象观察者为所有的具体观察者定义一个接口在得到主题的通知时更新自己。这个接口叫做更新接口。抽象观察者角色一般用一个抽象类或者一个接口实现。在这个示意性的实现中更新接口只包含一个方法即Update()方法这个方法叫做更新方法。ConcreteSubject具体主题也可称为具体被观察者该角色将有关状态存入具体观察者对象在具体主题的内部状态发生改变时给所有注册过的观察者发送通知。ConcrereObserver具体观察者实现抽象观察者定义的更新接口以便在得到主题更改通知时更新自身的状态。如果需要具体现察者角色可以保存一个指向具体主题对象的引用。 从具体主题角色指向抽象观察者角色的合成关系代表具体主题对象可以有任意多个对抽象观察者对象的引用。之所以使用抽象观察者而不是具体观察者意味着主题对象不需要知道引用了哪些ConcreteObserver类型而只知道抽象Observer类型。这就使得具体主题对象可以动态地维护一系列的对观察者对象的引用并在需要通知的时候调用每一个观察者共有的update()更新方法。这种做法叫做针对抽象编程。 2、观察者模式简单实现 拿博客专栏订阅为例网站用户的博客专栏为被观察者用户为观察者当有多个用户关注了yhz的JVM专栏当yhz的JVM专栏更新时就会通知这些订阅的用户。 抽象主题Subject package DesignModel.Observer;import java.util.ArrayList;/*** BelongsProject: 3.9.demo* Author: yhz* CreateTime: 2023-07-26 17:58* Description: TODO* Version: 1.0*/ public abstract class Subject {//定义一个订阅者集合用于存储所有订阅了这个专栏的用户对象protected ArrayListObserverobservers new ArrayList();//注册方法用于向订阅者集合中增加一个订阅者public void attach( Observer observer ) {observers.add( observer );}//注销方法用于在订阅者集合中删除一个订阅者public void detach( Observer observer ) {observers.remove( observer );}//通知所有订阅者更新消息public abstract void notifyObservers(String message); }具体主题ConcreteSubject yhz的这个专栏为具体主题里面存储了订阅该专栏的网站用户并实现了抽象主题中的通知方法 package DesignModel.Observer;/*** BelongsProject: 3.9.demo* Author: yhz* CreateTime: 2023-07-26 18:18* Description: TODO* Version: 1.0*/ public class ConcreteSubject extends Subject{//重写通知方法为自己的Overridepublic void notifyObservers(String message) {//通知订阅了该主题的所有订阅者for(Observer observer:observers){observer.update(message);}} } 抽象观察者Observer package DesignModel.Observer;public interface Observer {//声明了更i性能方法void update(String message); } 具体观察者ConcrereObserver 网站用户作为具体观察者里面实现了更新的方法 package DesignModel.Observer;/*** BelongsProject: 3.9.demo* Author: yhz* CreateTime: 2023-07-26 18:06* Description: TODO* Version: 1.0*/ public class Blooger implements Observer{//博主名称private String bloogerName;public Blooger(String bloogerName) {this.bloogerName bloogerName;}Overridepublic void update(String message) {System.out.println(bloogerNamemessage);} } 测试 package DesignModel.Observer;/*** BelongsProject: 3.9.demo* Author: yhz* CreateTime: 2023-07-26 18:21* Description: TODO* Version: 1.0*/ public class Test {public static void main(String[] args) {ConcreteSubject subject new ConcreteSubject();Blooger blooger new Blooger(aa1);Blooger blooger2 new Blooger(aa2);Blooger blooger3 new Blooger(aa3);Blooger blooger4 new Blooger(aa4);subject.attach(blooger);subject.attach(blooger2);subject.attach(blooger3);subject.attach(blooger4);subject.notifyObservers(您关注的yhz更新了博客);} } 结果打印 aa1您关注的yhz更新了博客 aa2您关注的yhz更新了博客 aa3您关注的yhz更新了博客 aa4您关注的yhz更新了博客观察者设计模式优缺点 观察者模式的优点包括 降低了主题与观察者之间的耦合关系两者之间是抽象耦合关系。可以很容易扩展观察者和被观察者。主题与观察者之间建立了一套触发机制。 观察者模式的缺点包括 主题与观察者之间的依赖关系并没有完全解除。当观察者对象很多时通知的发布会花费很长时间影响程序效率。观察者模式没有相应的机制让观察者知道所观察的目标对象是怎么发生变化的而仅仅只是知道观察目标发生了变化。如果在观察者和观察目标之间有循环依赖的话观察目标会触发它们之间进行循环调用可能导致系统崩溃。 在使用观察者模式时需要谨慎处理这些问题以确保系统的稳定性和效率。
http://www.dnsts.com.cn/news/29587.html

相关文章:

  • 电商网站开发成本软件技术毕业后能做什么工作
  • 关于对网站建设情况的通报大连免费网站建设
  • 如何在电商上购物网站网页设计怎么做流动图片
  • 做ae好的网站有哪些合肥微信网站制作
  • 广州百度网站快速排名网站域名被注册
  • 平台网站建设方案销售课程视频免费
  • 莱芜可信赖的网站建设网站制作哪里好薇
  • 四川省建设厅网站首页网站架构策划
  • 个人做医疗类网站违法云南昆明网络公司有哪些
  • 专业的制作网站开发公司房天下房官网
  • 柳州住房和城乡建设局网站盐城企业网站建设
  • 济宁做网站哪家比较好可以下载的建站网站
  • 二级学院网站建设方案网站栏目英文
  • 自己怎么优化网站wordpress 文章 页面模板
  • 西安网站建设公司十强网站建设需要懂什么语言
  • 网站建设创新互联服装设计公司室内平面图
  • 兰州工程建设信息网站个人运营app需要多少钱
  • 网站空间报价单php网站开发招聘
  • 开发网站的空间分录做网站_你的出路在哪里
  • 怎么做钓鱼网站盗取qq小程序网站开发太原
  • 自己想做个网站怎么做广州王牌seo
  • 织梦网站怎么做seo酒泉网站建设
  • SUPERW上海网站建设工作室wordpress内容页插件
  • 网站建设主机怎么做站旅游网站上泡到妞
  • 网站费用计入什么科目平面设计短期培训班
  • 网站开发包个人网站设计企业
  • 能浏览的海外网站杭州知名网页设计服务商
  • 苏州网站建设 江苏千渡网页设计图片位置怎么设置
  • a0000网站建设昌邑住房和城乡建设局网站
  • 百度网站的域名是什么wordpress 加速访问