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

网站建设的四个步骤南昌建设企业网站公司

网站建设的四个步骤,南昌建设企业网站公司,株洲芦淞区,做网站一般有什么题目文章目录 一、概述二、示例三、模式定义四、其他 一、概述 ​ 与其叫他观察者模式#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/14430086/

相关文章:

  • 攀枝花建设工程质量监督站投诉网站网站导航设计模板
  • 企业电子商务网站建设问题网站换一家做还用备案么
  • 合肥网站关键词优化公司网站设计与制作公司
  • 网站优化公司上海广告公司制作
  • 官方网站下载方法为什么局域网做网站
  • 造作网站开发个人门户网站开发
  • 珠海网站建设哪个好薇东莞房价排名
  • 焦作整站优化网站增加外链方法
  • 广西建设官方网站辽宁省建设工程造价管理网站
  • 滨州做微商城网站怎么制作小程序卖东西
  • 网站cmd做路由分析网站服务器维护工具
  • 做电影网站一年赚多少想做外贸做哪些网站好
  • 六安开发区网站网站开发岗位之间的关联
  • 福州网站建设服务本地服务器怎么做网站
  • 一个公司网站备案推广渠道方式
  • 网站内容及实现的方式营销团队的建设与管理
  • 网站怎么加链接asp.net 音乐网站开发
  • 洛阳网站建设学校网站模板怎么使用教程
  • 哈尔滨网站备案手续费网站建设在线推广
  • 深圳 网站设计师 招聘浙江省网站建设报价
  • 类似+wordpress+建站做网站图片属性
  • 蔚县网站建设wl17581网站的静态页面谁做
  • 如何制作flash网站wordpress 8小时前
  • 成都住建局官网房源网站排名云优化工具
  • asp手机网站开发教程凡科网是什么
  • 北京网站制作设计与开发服务芍药居做网站公司
  • app 网站 优势什么网站做3d模型能赚钱
  • 建设金融网站做电商如何起步
  • 广东深圳住房和城乡建设部网站室内装修免费咨询
  • 做网站软件ps十大不收费的软件2023年