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

洪雅网站建设建设英文品牌网站

洪雅网站建设,建设英文品牌网站,视频直播app开发网站,本周最新新闻● 观察者模式介绍 观察者模式是一个使用频率非常高的模式#xff0c;它最常用的地方是GUI系统、订阅——发布系统。因为这个模式的一个重要作用就是解耦#xff0c;将被观察者和观察者解耦#xff0c;使得它们之间依赖性更小#xff0c;甚至做到毫无依赖。以CUI系统来说它最常用的地方是GUI系统、订阅——发布系统。因为这个模式的一个重要作用就是解耦将被观察者和观察者解耦使得它们之间依赖性更小甚至做到毫无依赖。以CUI系统来说应用的UI具有易变性尤其是前期随着业务的改变或者产品的需要修改应用界面也会经常性变化但是业务逻辑基本变化不大此时GUI系统需要一套机制来应对这种情况使得UI层与具体的业务逻辑解耦观察者模式此时就派上用场了。 ● 观察者模式的定义 定义对象间一种一对多的依赖关系使得每当一个对象改变状态则所有依赖它的对象都会得到通知并被自动更新。 ● 观察者模式的使用场景 关联行为场景需要注意的是关联行为是可拆分的而不是“组合”关系 事件对接触发场景 跨系统的消息交换场景如消息队列、事件总线的处理机制。 ● 观察者模式的UML类图 UML类图下图所示。 角色介绍。 Subject抽象主题也就是被观察者Observable的角色抽象主题角色把所有观察者对象的引用在一个集合里每个主题都可以有任意数量的观察者抽象主题提供一个接口可以增加和删除观察者对象。 ConcreteSubject具体主题该角色将有关状态存入具体观察者对象在具体主题的内部状态发生改变时给所有注册过的观察者发出通知具体主题角色又叫做具体被观察者Concrete Observable角色。 Observer抽象观察者该角色是观察者的抽象类它定义了一个更新接口使得在得到主题的更改通知时更新自己。 ConcreteObserver具体的观察者该角色实现抽象观察者角色所定义的更新接口以便在主题的状态发生变化时更新自身状态。 ● 观察者模式的简单实现 假设有一个开发技术前线网站是一个聚合了关于Android、iOS新技术文章的开源库等内容的网站在这里可以看到新技术、强大的开源库、新的信息经常浏览这两网站不仅能够开阔眼界也能让我们接触到前沿的科技信息。 开发技术前线不仅是个内容发布页面也支持用户邮箱订阅每周发布周报后会将优质的内容推送给订阅用户这种模式叫做发布——订阅模式它的另一个名称是观察者模式。 下面让我们来简单模拟一下开发技术前线的发布——订阅过程。 /*** 程序是观察者*/ public class Coder implements Observer {public String name;public Coder(String name) {this.name name;}Overridepublic void update(Observable o, Object arg) {System.out.println(Hi, name , DevTechFrontier更新新, 内容 arg);}NonNullOverridepublic String toString() {return 码农 name;} } /*** DevTechFrontier 即开发技术前线这个网站是被观察者角色当它有更新时所有的观察者这里是程序员* 都接到相应的通知*/ public class DevTechFrontier extends Observable {public void postNewPublication(String content) {//标识状态或者内容发生改变setChanged();//通知所有观察者notifyObservers(content);} } /*** 测试代码*/ public class Test {public static void main(String[] args) {//被观察的角色DevTechFrontier devTechFrontier new DevTechFrontier();Coder mrsimple new Coder(mr.simple);Coder coder1 new Coder(coder-1);Coder coder2 new Coder(coder-2);Coder coder3 new Coder(coder-3);//将观察者注册到可观察对象的观察者列表中devTechFrontier.addObserver(mrsimple);devTechFrontier.addObserver(coder1);devTechFrontier.addObserver(coder2);devTechFrontier.addObserver(coder3);//发布消息devTechFrontier.postNewPublication(新的一期开发技术前线周报发布啦);} } 输出结果 可以看到所有订阅了开发技术前线的用户都收到了更新消息一对多的订阅——发布系统就完成了。 Oblerver和Observable是JDK中内置类型可见观察者模式是非常重要的这里Obsserver是抽象的观察者角色Coder扮演的是具体观察者的角色Observable对应的是抽象主题角色DevTechFrontier则是具体的主题角色。Coder是具体的观察者它们订阅了DevTechFrontier这个具体的可观察对象当DevTechFrontier有更新时会遍历所有观察者这里是Coder然后给这些观察者发布一个更新的消息即调用Observer和Observable这些抽象类因此Coder和DevTechFrontier完全没有耦合保证了订阅系统的灵活性、可扩展性。
http://www.hkea.cn/news/14409033/

相关文章:

  • 个人网站模板 免费网站设计师的工作环境
  • 官方网站建设 都来磐石网络软件开发培训课程咨询
  • 莆田网站建设培训wordpress别人主题插件
  • 建设企业管理类网站中国电商平台有多少家
  • 青岛北京网站建设百度指数使用方法
  • 装饰网站案例在网站做推广要钱吗
  • 做网站策划案网站做ppt模板
  • 青岛网站设计哪家便宜网站定制开发
  • wap网站网站建设图片如何放在网站上
  • 网站备案个人和企业的区别做网站公司怎么拉客户
  • 佛山网页网站制作学软件开发需要什么基础
  • 济南想做网站国家为何要求所有网站均须备案
  • 360云盘做服务器建设网站互联网装修公司排行榜
  • 建网站 3年服务器磁力搜索引擎哪个好
  • 做淘客网站用什么上传文件北京做erp报价的网站
  • 人力资源公司简介百度推广怎么做网站的优化
  • 东莞+网站+建设+汽车长沙市网站制作哪家专业
  • 网站详情页用哪个软件做先有域名才可以做网站吗
  • 可以自己做网站优化吗百度云网页版登录入口
  • 辽阳建网站接私活做网站设计
  • wordpress 内容 只调图片大小西安百度提升优化
  • 网站开发的文献铜川北京网站建设
  • 宁波市节约型机关建设考试网站wordpress 个人写作
  • 建设网站的目的及功能wordpress经典编辑器插件
  • 网站系统中备案申请表女装小说WordPress
  • 网站流量排名网站排名软件 利搜
  • 都匀网站建设公司wordpress 用户上传文件
  • 合肥制作网站的公司apache搭建多个网站
  • 毕业设计网站代做多少钱网站被k十大原因
  • 专做丰田车货款的网站小程序开发平台好的有哪些