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

网站开发的逻辑以蓝色为主色调的网站

网站开发的逻辑,以蓝色为主色调的网站,同源大厦 网站建设,网站建设表格定义对象间的一种一对多的依赖关系#xff0c;当一个对象的状态发生改变时#xff0c;所有依赖于它的对象都得到通知并被自动更新。 什么是观察者模式#xff1f; 观察者模式在我们的日常生活中极其常见。 先来看看观察者模式的定义#xff1a; 观察者模式定义了对象之间… 定义对象间的一种一对多的依赖关系当一个对象的状态发生改变时所有依赖于它的对象都得到通知并被自动更新。 什么是观察者模式 观察者模式在我们的日常生活中极其常见。 先来看看观察者模式的定义 观察者模式定义了对象之间一对多的依赖当这样一来当一个对象状态改变时它的所有依赖者都会收到通知并自动更新。 这个模式在我们日常生活中可以说是太常见了 比如手机上的天气预报一旦气象局的信息进行了更新手机上的天气信息就会相应的变化 比如10086群发的消息其实也是一个观察者模式的例子每当10086发送一条消息时所有的移动手机都会收到这个消息。而且一般消息中都会附带一个提醒“退订请回复T”一旦回复了T以后就不会接收到显10086对应的短信了。 比如麦当劳吃炸鸡时当一份食物准备好就会通知“3045、3045、3045”请取餐大家都能听到但是可能只有一个人会去取餐因为订阅者可以自行决定接收到消息之后动不动或者说做什么又比如… 观察者模式描述的就是订阅者和发布者之间的联系。其UML类图如下 在这个下面给出订阅者和发布者的一个例子。 应用实例 借鉴《大话设计模式》的看门放哨的例子我们来设计这样一个场景 “一堂自习课时小红、小蓝、小绿三人无心学习各玩各的。坐在门口小黄在门口放哨一旦看到班主任的身影就敲一下桌子其他三人应声而动赶忙拿出书进行学习。当班主任走远了小黄敲两下桌子大家又开始愉快的玩耍…” 主体接口 主体接口又称为被观察者采用接口的方式可以给具体的主体类实现自己的逻辑如采用链表、数组、或者Map等结构存储观察者。 public interface Subject {// 增加观察者public void attach(Observer observer);// 删除观察者public void detach(Observer observer);// 通知所有观察者public void notifyObservers();// 主体(被观察者)状态public void setAction(String action);public String getAction(); }通知者接口 通知者接口主要是定义了一个接口不同的通知者实现自己的消息逻辑 public abstract class Observer {protected String name;protected Subject subject;public Observer(String name, Subject subject) {this.name name;this.subject subject;}public abstract void update(); }实际观察者小红、小蓝、小绿 分别实现三个同学 public class Xiaohong extends Observer {public Xiaohong(String name, Subject subject) {super(name, subject);}Overridepublic void update() {System.out.println(subject.getAction() \n name 把小说藏起来继续学习);} }public class Xiaolan extends Observer {public Xiaolan(String name, Subject subject) {super(name, subject);}Overridepublic void update() {System.out.println(subject.getAction() \n name 把手机收起来继续学习);} }public class Xiaolv extends Observer {public Xiaolv(String name, Subject subject) {super(name, subject);}Overridepublic void update() {System.out.println(subject.getAction() \n name 把游戏机收起来继续学习);} }实际发布者小黄 小黄观察老师的到来通知大家 public class Xiaohuang implements Subject {// 需要通知的同学列表private final ListObserver observers new LinkedList();private String action;// 添加通知同学Overridepublic void attach(Observer observer) {observers.add(observer);}// 删除通知同学Overridepublic void detach(Observer observer) {observers.remove(observer);}// 通知所有同学Overridepublic void notifyObservers() {for (Observer observer : observers) {observer.update();}}// 获取通知状态Overridepublic String getAction() {return action;}// 设置通知状态Overridepublic void setAction(String action) {this.action action;} }运行客户端 public class App {public static void main(String[] args) {// 前台为通知者Xiaohuang xiaohuang new Xiaohuang();Xiaohong observer1 new Xiaohong(小红, xiaohuang);Xiaolv observer2 new Xiaolv(小绿, xiaohuang);Xiaolan observer3 new Xiaolan(小蓝, xiaohuang);// 需要通知三个xiaohuang.attach(observer1);xiaohuang.attach(observer2);xiaohuang.attach(observer3);// 设置通知状态xiaohuang.setAction(小心Boss回来了);// 发送通知xiaohuang.notifyObservers();} }结果如下 总结 优点 观察者模式实现了发布者和订阅者之间的松耦合两个对象之间可以进行交互但是不太清楚彼此之间的细节适用于一个对象改变相联系的对象随之发生相应变化的场景。 缺点 如果对象之间有循环依赖在观察者模式下可能会引发循环调用从而造成系统崩溃 总而言之当对象之间的关系类似与消息群发这样的一对多关系时就可以开始考虑用不用观察者模式了。都这个时候了不用它还能用谁啊 参考资料 《Head First 设计模式》 《大话设计模式》 观察者模式——极客教程
http://www.yingshimen.cn/news/13945/

相关文章:

  • 大型小说网站开发语言congqin网站建设
  • 网站建设前端和后端广西住房和建设厅网站
  • 旅游网站界面设计东莞网站关键词
  • 福泉市建设局网站嘉兴百度seo
  • 长宁哪里有做网站优化比较好网站开发实训的心得
  • 网站开发常用哪几种语言网站制作网站模板
  • 闲鱼上面给人做网站造退款wordpress修改后天地址
  • php 金融网站源码设计师接私单
  • 网站加入我们页面做装修有什么好网站可以做
  • 贵阳58同城做网站公司做网站数据库及相关配置
  • 绍兴市柯桥区建设局网站衡阳网站建设要点推广
  • 家居网站建设哪家好网站后台默认用户名
  • 沈阳做网站最好的公司有哪些秀色直播app软件大全
  • 西乡专业做网站公司网络营销的特点包含
  • 用什么做网站后台如何规避电子政务门户网站建设教训
  • 网站板块怎么做接单赚钱平台
  • 创建网站目录权限seo云优化外包
  • 门源县公司网站建设互联网如何挣钱创业
  • 网站建设视频教程推荐专做宝宝辅食的网站
  • 网站开发技术考试题目郑州推广优化公司
  • 惠州的企业网站建设wordpress媒体相对路径
  • 肥城网站建设方案wordpress 判断登录
  • 做网站运营需要学什么做网站复杂吗
  • wordpress的教程兰州网络推广优化网
  • 网站怎样做多语言切换网络规划与设计思维导图
  • pc 手机网站建设腾讯开放平台
  • 淘宝客网站建设教程大良营销网站建设市场
  • 兰州建设厅网站学院网站建设建议
  • 做企业网站注意些啥微信小程序商城平台
  • 陕西建设教育网站游戏页面