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

电脑科技网站模板新手学网站建设解疑与技巧1200例

电脑科技网站模板,新手学网站建设解疑与技巧1200例,目前网站开发趋势,网站建设 铭阳传媒17.观察者模式 观察者模式#xff1a;定义了一种一对多的依赖关系#xff0c;让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时#xff0c;会通知所有的观察者对象#xff0c;使他们能够自动更新自己。 主要解决#xff1a;一个对象状态改变给其他…17.观察者模式 观察者模式定义了一种一对多的依赖关系让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时会通知所有的观察者对象使他们能够自动更新自己。 主要解决一个对象状态改变给其他对象通知的问题而且要考虑到易用和低耦合保证高度的协作。何时使用一个对象目标对象的状态发生改变所有的依赖对象观察者对象都将得到通知进行广播通知。如何解决使用面向对象技术可以将这种依赖关系弱化。关键代码在抽象类里有一个 ArrayList 存放观察者们。 代码背景 一个班级有两类学生A类不学习玩但是玩的东西不一样有的是做游戏有的是看电视 B类放哨的学生专门看老师的动向如果老师进班了就立即通知大家。 如此就形成了一个需求放哨的学生要通知所有玩的学生老师来了而不同的学生有不同的反应有的马上把电视关闭有的停止玩游戏。 一、抽象观察者 public abstract class Observer {public abstract void updateState(); }二、若干具体观察者1.玩游戏观察者 Data NoArgsConstructor AllArgsConstructor public class GameObserver extends Observer {//观察者的姓名private String name;//观察者的状态private String observerState;//明确具体的通知者private ConcreteSubject subject;Overridepublic void updateState() {observerState subject.getSubjectState();System.out.println(String.format(%s在打游戏,name));System.out.println(String.format(观察者%s的:新状态是%s,name,observerState));} }2.看电视观察者 Data AllArgsConstructor NoArgsConstructor public class TVObserver extends Observer {//观察者的姓名private String name;//观察者的状态private String observerState;//明确具体的通知者private ConcreteSubject subject;Overridepublic void updateState() {observerState subject.getSubjectState();System.out.println(String.format(%s在看电视,name));System.out.println(String.format(观察者%s的:新状态是%s,name,observerState));} }3.抽象通知者 Data NoArgsConstructor AllArgsConstructor public abstract class Subject {private ListObserver observerList new ArrayList();/*** 通知所有观察者*/public void notifyMsg(){for (Observer observer : observerList) {observer.updateState();}}}4.具体通知者 Data public class ConcreteSubject extends Subject {private String subjectState; }5.测试 public class ObserverTest {public static void main(String[] args) {ConcreteSubject concreteSubject new ConcreteSubject();GameObserver gameObserver new GameObserver(小张,,concreteSubject);TVObserver tvObserver new TVObserver(小李, , concreteSubject);GameObserver gameObserver1 new GameObserver(小王, , concreteSubject);concreteSubject.getObserverList().add(gameObserver);concreteSubject.getObserverList().add(tvObserver);concreteSubject.getObserverList().add(gameObserver1);concreteSubject.setSubjectState(老师来了赶快学习);concreteSubject.notifyMsg();} }
http://www.dnsts.com.cn/news/11333.html

相关文章:

  • wordpress双语站建设厅培训中心网站
  • 网站外链建设的15个小技巧黑龙江新闻法治在线
  • 济南黄河路桥建设集团官方网站网站源码生成
  • 一元夺宝网站建设江西建设职业技术学院官方网站
  • 建站方案策划书刚做的网站在百度上搜不到
  • 怎么用手机做网站购物网站的详细设计
  • 网络优化2年工资有多少常州抖音seo
  • 网站开发毕业设计开题报告奉贤专业网站建设
  • 京东的网站规划与建设市场分析网页设计代码动漫
  • 推荐商城网站建设成都微信网站建设多少钱
  • 成都高端网站开发永久免费的培训学校管理软件
  • 哪些网站可以发布免费招聘信息朝阳网站开发联系电话
  • ui培训班哪里比较好百度网站建设优化
  • 网站建设了Wordpress回复邮件通知
  • 宜昌做网站公司有哪些网站做网站可以没有框架吗
  • 浙江五联建设有限公司网站只做公司网站方案
  • 山东工艺美术学院网站建设公司wordpress页面转文章
  • 沈阳网站制作系统深圳哪家装修公司口碑最好
  • 惠州企业建站系统建设网站那家公司好
  • 网站推广方法渠道网页版视频网站建设需要多少钱
  • 网站推广效果分析呼和浩特百度公司
  • 制作充值网站广告公司好做吗
  • 徐州建站模板公司做网站需要招什么条件
  • 网站备案需要营业执照吗移动网站开发试验报告
  • html5手机网站建设所见即所得的网站开发软件
  • wordpress火车头发布接口深圳优化网站
  • 艺术设计与制作关键词网站建设优化
  • 做网站设计和推广医疗网站建设讯息
  • 品牌网站和优化网站装饰设计是什么
  • 学校网站建设招聘重庆在线开放平台