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

南昌建设企业网站公司财务公司承兑汇票

南昌建设企业网站公司,财务公司承兑汇票,土特产网站建设事业计划书,米拓 wordpress文章目录 一、概述二、示例三、模式定义四、其他 一、概述 ​ 与其叫他观察者模式#xff0c;我更愿意叫他叫 订阅-发布模式 #xff0c;这种模式在我们生活中非常常见#xff0c;比如#xff1a;追番了某个电视剧#xff0c;当电视剧有更新的时候会第一时间通知你。当你… 文章目录 一、概述二、示例三、模式定义四、其他 一、概述 ​ 与其叫他观察者模式我更愿意叫他叫 订阅-发布模式 这种模式在我们生活中非常常见比如追番了某个电视剧当电视剧有更新的时候会第一时间通知你。当你预约了某款游戏后游戏发布后就会立刻通知你而不需要你每天都去关注游戏是否上线。 二、示例 ​ 我想要说明一点对于每一种设计模式最重要的不是代码的结构而是其中所蕴含的思想你应该要去考虑的是代码为什么这么设计而不是仅仅照着这样设计因为每一种设计模式到不同的人手里写出来的代码多多少少会有些许差别但是其核心的思想是一样的那就是设计原则 分析 此模式需要发布者及时地通知所有订阅者因此发布者知道所有的订阅者的信息。发布者可以添加或者移除订阅者订阅者也可以进行订阅或者取消订阅的操作。 代码 package main// Publisher 发布者接口 type Publisher interface {AddSubscriber(subscriber Subscriber) // 添加订阅者RemoveSubscriber(subscriber Subscriber) // 移除订阅者NotifySubscribers() // 通知订阅者 }// Subscriber 订阅者接口 type Subscriber interface {GetID() string // 获取订阅者IDNotify(contextMessage string) // 通知订阅者 }// Object 被观察者, 实现 Publisher 接口 type Object struct {Subscribers []Subscriber // 订阅者列表ContextMessage string // 上下文信息 }func (p *Object) AddSubscriber(s Subscriber) {p.Subscribers append(p.Subscribers, s) }func (p *Object) RemoveSubscriber(s Subscriber) {for i, subscriber : range p.Subscribers {if subscriber.GetID() s.GetID() {p.Subscribers append(p.Subscribers[:i], p.Subscribers[i1:]...)}} }func (p *Object) NotifySubscribers() {for _, subscriber : range p.Subscribers {subscriber.Notify(p.ContextMessage)} }// UpdateContextMessage 更新上下文信息 func (p *Object) UpdateContextMessage(newMessage string) {p.ContextMessage newMessagep.NotifySubscribers() }// SubscriberA 订阅者A, 实现 Subscriber 接口 type SubscriberA struct {ID string }func (s *SubscriberA) GetID() string {return s.ID }func (s *SubscriberA) Notify(contextMessage string) {println(SubscriberA received:, contextMessage) }// SubscriberB 订阅者B, 实现 Subscriber 接口 type SubscriberB struct {ID string }func (s *SubscriberB) GetID() string {return s.ID }func (s *SubscriberB) Notify(contextMessage string) {println(SubscriberB received:, contextMessage) }func main() {// 创建被观察者object : Object{}// 创建订阅者subscriberA : SubscriberA{ID: subscriberA}subscriberB : SubscriberB{ID: subscriberB}// 添加订阅者 A 和 Bobject.AddSubscriber(subscriberA)object.AddSubscriber(subscriberB)// 更新上下文信息, 通知所有订阅者object.UpdateContextMessage(Hello World!)// 移除订阅者Bobject.RemoveSubscriber(subscriberB)// 更新上下文信息,object.UpdateContextMessage(Hello World Again!) }​ 上述代码还没有一些没有去做建议你可以尝试去实现: 订阅者能够主动的订阅或者取消订阅建议你尝试着去完成这一功能通知顺序是有序/无需的 三、模式定义 ​ 观察者模式定义了对象之间的一对多依赖这样一来每当一个对象改变状态时他所所有的依赖者都会收到通知并自动更新。 四、其他 ​ java 中也有内置的观察者模式。java.util 包内包含最基本的 Observer 接口和 Observable 类如果有兴趣可以去了解一下其运作方式。
http://www.hkea.cn/news/14435913/

相关文章:

  • 做一个官方网站多少钱创建公司的流程图
  • 网站目录结构模板用网站做淘宝客
  • 网站打不开怎么做重庆十大软件公司
  • 兰州做网站的公司做简单的html网站
  • 大学html网站建设作业wordpress分享到微博
  • 南宁市做网站简单制作html静态网页
  • 域名注册网站有哪些超级优化还原
  • 推广一个网站需要什么数据分析师报名入口
  • 2345浏览器官网首页潍坊网站建设SEO优化熊掌号
  • 有哪些做高考模拟卷的网站建e网手机app
  • 怎么查网站后台地址企业做网站需要那些条件
  • 北海网站优化如何知道一个网站做的什么推广
  • 南通网站制作外包佛山专业网站制作设计
  • 想做网站制作运营注册什么公司核实最好的网站管理系统
  • 做网站西域数码阿里云网站不能上传附件
  • 社区网站 租用服务器还是只需要购买空间做一款小程序需要多少钱
  • 完整网站开发视频搜索引擎营销的模式有
  • 广州做网站商城的公司沈阳酒店团购网站制作
  • 成都seo网站qq亚洲影视传媒有限公司
  • 上海网站设计推荐刻石家庄百度推广排名优化
  • 网站建设单词济南网站建设网站
  • 网站开发人员晋升体系网页打不开视频
  • 源码分享站有源码如何搭建app
  • 网站的简介怎么在后台炒做孝昌县专注网站建设代理
  • 免费建网站软件哪个好wordpress tag导入
  • 无锡做网站的企业免费logo设计自动生成u钙网
  • 网站建设方案范文8篇延吉建设局网站
  • 装修公司网站用的织梦提供东莞网站制作公司
  • 重庆网站建设 观音桥制作网站付款方式
  • 宁夏建设网站大数据网站开发工程师