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

无锡电子商城网站设计微擎可以做企业网站吗

无锡电子商城网站设计,微擎可以做企业网站吗,商丘企业网站建设服务,网站建网站建设企业写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用,主要是下面的UML图可以起到大作用,在你学习过一遍以后可能会遗忘,忘记了不要紧,只要看一眼UML图就能想起来了。同时也请大家多多指教。 观察者模式(Observ…

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用,主要是下面的UML图可以起到大作用,在你学习过一遍以后可能会遗忘,忘记了不要紧,只要看一眼UML图就能想起来了。同时也请大家多多指教。

观察者模式(Observer),又名:发布-订阅模式(publish-subscribe)

是一种行为型模式。因为叫发布-订阅模式更容易理解,所以下面说明时大多情况会使用发布-订阅这个名称。

目录

一、概述

1.1、直观的理解:

1.2、主要角色:

1.3、描述对象之间关系的UML图:

1.4、适用场景:

二、简单举例

2.1、对象之间的关系用UML图表示如下:

2.2、Java代码如下:


一、概述

1、观察者模式定义了一种一对多的依赖关系,让多个观察者(订阅者)对象同时监听某一个主题(发布者)对象。这个主题(发布者)对象在状态发生变化时,会通知所有观察者(订阅者)对象,使它们能够自动更新自己。

1.1、直观的理解

(注:关于发布者何时给订阅者通知更新,这个需要结合实际情况来考虑) 

1.2、主要角色:

  • 发布者(目标主题):发布者的抽象类或接口 + 发布者类
  • 订阅者(观察者):订阅者的抽象类或接口 + 订阅者类

1.3、描述对象之间关系的UML图:

1.4、适用场景:

  • 一个抽象模型有两个方面,其中一个方面依赖另一个方面。可以将它们封装独立出来
  • 对一个对象的改变需要同时改变其他对象
  • 一个对象必须通知其他对象,而且其他对象并不是固定不变的

二、简单举例

假设 客户端 要让 发布者 设置自己的状态为hello,再然后通知 张三 和 李四 这两个 订阅者 。例子简单就不再详细分析了。你可以把这当做一个模板,然后灵活使用:

2.1、对象之间的关系用UML图表示如下:

2.2、Java代码如下:

订阅者的抽象类:

abstract class Subscriber {public abstract void update();//接收发布者的消息
}

发布者的抽象类:

abstract class Publisher {private List<Subscriber> list; //链表public Publisher() {//初始化this.list = new LinkedList<>();}public void attach(Subscriber subscriber) { //增加订阅者list.add(subscriber);}public void detach(Subscriber subscriber) {//删除订阅者list.remove(subscriber);}public void notifySubscriber() {//通知订阅者for (Subscriber subscriber : list) {subscriber.update();}}private String publisherState;//发布者状态public String getPublisherState() {//得到发布者状态return this.publisherState;}public void setPublisherState(String publisherState) {//设置发布者状态this.publisherState = publisherState;}
}

具体的发布者A:

public class ConcretePublisherA extends Publisher{//发布者的其它方法
}

具体的订阅者1:

public class ConcreteSubscriber1 extends Subscriber {private String name;//订阅者名称private Publisher publisher;//发布者public ConcreteSubscriber1(String name, Publisher publisher) {//初始化this.name = name;this.publisher = publisher;}@Overridepublic void update() {//接收发布者的消息System.out.println("订阅者是:" + this.name + ",发布者的状态为:" + this.publisher.getPublisherState());}
}

主程序(发起请求的类):

public class Main {public static void main(String[] args) {Publisher publisher = new ConcretePublisherA();Subscriber subscriber1 = new ConcreteSubscriber1("张三", publisher);Subscriber subscriber2 = new ConcreteSubscriber1("李四", publisher);publisher.attach(subscriber1);publisher.attach(subscriber2);publisher.setPublisherState("hello!");//通知订阅者publisher.notifySubscriber();}
}

这里就不再举例了,可以把上面的Java例子复制到你本地,运行main函数试一下加深理解。这些代码都是我自己学习的时候根据一些教材手敲的,不存在bug可以直接运行。

如果觉得本文还不错,就请点个赞给作者一点鼓励吧!如果有建议,也请评论指教和讨论!

http://www.yayakq.cn/news/948095/

相关文章:

  • 重庆网站建设哪里有做设计转钱网站
  • 当阳网站建设如何让网站快速收录
  • 互联网金融网站建设服务网站建设公司
  • 网站没有在工信部备案传奇来了网页版
  • 做网站的费用如何入帐搜索关键词排名一般按照什么收费
  • 最专业企业营销型网站建设常见的关键词
  • 电脑培训机构seo和sem是什么意思
  • 用windows建设网站好吗做外贸大一点的网站
  • 做产品宣传网站多少钱与别人相比自己网站建设优势
  • 杭州商城网站建设网站建设设计 昆山
  • 软环境建设办公室网站北京市住房建设投资建设网站
  • 外贸零售网站建设数据分析师考试
  • 怎么用2级目录做网站怎么上传网站地图
  • 网页制作新建站点步骤做微商去哪些社交网站
  • 国外做游戏的视频网站有哪些校园推广方案
  • 快速搭建网站框架北京行业网站制作
  • 手机网站与电脑网站的区别aso优化运营
  • 阿雷网站建设建筑工程公司简介模板范文
  • 杭州知名网站建设公司怎么查网站的外链数量
  • 镇江 网站广州深圳外贸公司
  • 临沂外贸网站帮别人做钓鱼网站吗
  • 中国做网站最好的企业网站建设站点无法发布
  • 敲代码做网站多少钱做网站的思路怎么写
  • 中国建设部网站关于资质河南高端网站建设公司
  • 网站建设移动端医生做学分在哪个网站
  • 网站维护细则有赞微商城官网登录
  • 铁岭市网站建设网站建设外包名词解释
  • 长沙专业的网站设计微商城运营
  • 网站建设知识平台wordpress页脚添加联系qq
  • 三合一网站建设方案越南做彩票网站是违法的吗