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

app网站开发公司大门户wordpress主题下载

app网站开发公司,大门户wordpress主题下载,网站底部悬浮代码,网站服务内容填网站建设可以目录 前言概念你有过这样的问题吗#xff1f; 详细介绍原理#xff1a;应用场景#xff1a; 实现方式#xff1a;类图代码 问题回答监听#xff0c;为什么叫监听#xff0c;具体代码是哪观察者模式的需求衍变过程观察者是为什么是行为型 总结#xff1a; 前言 在软件设计… 目录 前言概念你有过这样的问题吗 详细介绍原理应用场景 实现方式类图代码 问题回答监听为什么叫监听具体代码是哪观察者模式的需求衍变过程观察者是为什么是行为型 总结 前言 在软件设计中对象之间的通信是非常常见的情况。然而当对象之间的通信过于紧密可能会导致代码的耦合度增加使得系统难以维护和扩展。为了解决这个问题观察者模式应运而生。本文将介绍观察者模式的原理、应用场景以及实现方式并通过图、代码和例子进行详细说明。 概念 观察者模式通过定义一种一对多的依赖关系让多个观察者对象同时监听某一个主题对象当主题对象发生变化时会自动通知所有观察者对象进行相应的更新操作。 你有过这样的问题吗 概念中说“多个观察者对象同时监听某一个主题对象”什么叫监听监听是被动的还是主动的在代码中哪块体现监听了观察者模式的需求是如何演变的观察者模式属于行为型为什么呢行为型有什么特点吗观察者模式应用场景有哪些有什么不足吗 带着类似的问题看下面的内容文章的最后也会对这些问题一一回答 详细介绍 原理 观察者模式由两个核心角色组成主题Subject和观察者Observer。主题对象维护一个观察者列表有个容器用来放观察者当主题对象的状态发生变化时会遍历观察者列表依次通知每个观察者进行相应的更新操作。观察者对象则通过注册到主题对象上以接收主题对象的通知。 应用场景 观察者模式在许多实际应用中都有广泛的应用例如 消息订阅和发布系统主题对象充当消息发布者观察者对象充当消息订阅者。当发布者发布新消息时订阅者会收到通知并进行相应的处理。 GUI开发主题对象可以是用户界面组件观察者对象可以是与该组件相关的其他组件。当用户界面组件发生变化时其他组件可以及时更新自身的状态。 股票市场监控系统主题对象可以是股票市场观察者对象可以是投资者。当股票市场行情发生变化时投资者可以及时了解到最新的行情。 实现方式 类图 代码 下面通过一个简单的示例来演示观察者模式的实现。 首先我们定义主题接口Subject包含注册观察者、移除观察者和通知观察者的方法。 public interface Subject {void registerObserver(Observer observer);void removeObserver(Observer observer);void notifyObservers(); }然后我们定义观察者接口Observer包含接收通知并进行更新操作的方法。 public interface Observer {void update(); }接下来我们实现具体的主题类ConcreteSubject并在该类中实现注册观察者、移除观察者和通知观察者的方法。 public class ConcreteSubject implements Subject {private ListObserver observers new ArrayList();Overridepublic void registerObserver(Observer observer) {observers.add(observer);}Overridepublic void removeObserver(Observer observer) {observers.remove(observer);}Overridepublic void notifyObservers() {for (Observer observer : observers) {observer.update();}}// 其他业务逻辑... }最后我们实现具体的观察者类ConcreteObserver并在该类中实现接收通知并进行更新操作的方法。 public class ConcreteObserver implements Observer {Overridepublic void update() {// 执行更新操作...} }通过以上代码我们可以看到主题对象和观察者对象之间并没有直接的耦合关系它们通过接口进行通信实现了松耦合的对象间通信。 问题回答 监听为什么叫监听具体代码是哪 在观察者模式中观察者对象通过注册或订阅的方式来监听某一个主题对象。这个监听的过程在代码中体现在观察者对象注册到主题对象的观察者列表中。 具体地主题对象通常会提供一些方法例如attach(observer)和detach(observer)用于观察者对象的注册和注销。当主题对象的状态发生变化时它会遍历观察者列表并调用每个观察者对象的相应方法通知它们状态的变化。 关于为什么称之为监听这是因为在观察者模式中观察者对象并不需要主动去轮询或查询主题对象的状态而是被动地接收主题对象的通知。观察者对象通过注册到主题对象上就像是在监听主题对象的状态变化。 观察者对象并没有主动去听的动作但它们被动地接收主题对象的通知从而实现了对主题对象状态变化的监听。这种被动的接收通知的行为可以理解为观察者对象在监听主题对象。 观察者模式的需求衍变过程 故事背景 老板回来前台秘书发通知消息给正在玩的同事们前提是同事提前在秘书那“注册”过–“老板来了通知我一下”收到秘书的通知后同事们各自采取行动 宏观 最初的通知者和观察者是明确知道对方的存在的但是在经过一次次的优化后观察者和通知者都不知道对方具体存在只知晓一个接口或者抽象类这里就是在一对多通知的时候使用这种抽象的好处不需要知道具体的通知者和观察者。 微观 1.双向耦合     开始有三个类前台秘书类看股票同事类客户端此时的前台秘书类与观察者类相互耦合前台秘书类要增加观察者、观察者需要前台的的状态。 需要解决的问题是前台秘书类与观察者类相互耦合。 2.解耦     增加抽象的观察者增加了看NBA的同事看股票的同事与看NBA 的同事继承抽象观察者。前台秘书类中与具体的观察者耦合的地方都改成了抽象观察者。存在的问题是具体的观察者不应该依赖具体的主题而是需要一个抽象的通知者。如果前台有事来不及通知那么通知谁来做前台不想通知某位同事需要有移除方法进行支持。 3.观察者模式     观察者模式的作用是在解耦合让耦合的双方都依赖抽象而不是依赖于具体。从而使得各自的变化都不会影响另一边的变化。 如果观察者是风马牛不相及的类使用接口更加合适。 观察者模式的不足     抽象通知者依赖抽象观察者应该由客户端决定通知谁并不是每个具体的观察者都是更新方法。 事件与委托的实现     看股票的观察者类、看NBA 观察者类 去掉了父类抽象观察者并将更新方法名改为自己合适的方法名字。抽象观察者不要了声明EventHandler委托,在具体的统治者类增加委托事件-update。 观察者是为什么是行为型 观察者模式是一种行为型设计模式因为它关注的是对象之间的行为和交互通过定义接口和松耦合的方式实现了对象之间的动态关联。 在观察者模式中被观察者和观察者之间通过定义接口进行通信这就意味着它们之间可以有不同的行为。被观察者负责维护观察者的列表并在状态发生改变时通知观察者。观察者则负责定义在接收到通知时要执行的行为。 观察者模式的行为型特点还体现在它的实现方式上。在观察者模式中被观察者和观察者之间是松耦合的它们之间的关联是动态的可以随时添加或移除观察者。这种灵活性使得观察者模式非常适合在复杂的系统中处理对象之间的行为和交互。 简单一句话总结行为型设计模式特点     行为型模式的核心都有一个类,把整个模式要做的事封装在这个类的一个方法里执行。     具体在观察者模式中这个类是ConcreteObserver,具体是其中的构造方法。具体观察者只管要它要订阅哪个主题this.subjectsubject.但是它不管订阅的主题具体做什么事进而实现了整个设计模式要实现的行为。 总结 观察者模式通过定义一种一对多的依赖关系实现了对象之间的松耦合通信。它能够帮助我们构建可维护和可扩展的系统。在实际应用中我们可以根据具体的需求进行灵活的扩展和定制。希望本文对你理解观察者模式有所帮助。
http://www.huolong8.cn/news/303297/

相关文章:

  • 中国建设通网站学生网页设计主题
  • 网站设计宽度尺寸河南造价信息网
  • 我来做煮官方网站招商网网站建设方案
  • 找网站做任务领q币wordpress 修改样式
  • 建站加盟南京百度
  • 网站设计网站机构网站统计工具有哪些
  • 先进网站建设流程深圳工业设计公司排行榜
  • php做的一个网站专业视频网站开发
  • 网站炫酷首页公众号购买
  • 营销网站建设与推广方案安徽六安
  • 欧美电商网站wordpress主题上传失败
  • 广西网站制作小程序开发平台源代码下载
  • 门户网站建设案例备案掉了网站会怎样
  • 网站底部怎么修改做网站设计师的感想
  • 无锡建网站价格广告设计专业哪个大学最好
  • 点击即玩的小游戏网站四川专业网站建设
  • 网站导航页面制作建设局招标网站
  • 北京网站备案号注册劳务公司流程和费用
  • 工信部网站黑名单查询新浪推网站
  • 做纺织机械的网站域名满版型网站有哪些
  • 免费产品网站建设移动互联网软件开发
  • 潍坊设计网站如何寻找网站建设需求客户
  • 手机企业网站源码众筹网站开发需求
  • 做啥网站赚钱?html怎么写
  • 江西网站建设平台小程序广州开发公司
  • 华为云上面可以代做网站吗wordpress divi 教程
  • 多伦多网站建设多少钱超级采购小程序怎么注册
  • 上海网站建设在哪湖南人文科技学院官网首页
  • 云南省建设执业资格注册管理中心网站铜川做网站电话
  • 专门做家教的网站360建筑网怎么注册