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

网站建设技术团队有多重要2024年重大新闻摘抄

网站建设技术团队有多重要,2024年重大新闻摘抄,关于网站开发网页上传和网站发布,网站qq客服怎么做目录 观察者模式中的角色 通过一个简单案例来演示观察者模式 被观察者接口 事件类型 up主类作为被观察者 观察者接口 粉丝类作为观察者 测试 测试结果 观察者模式中的角色 被观察者(observable)观察者(observer) 通过一个简单案例来演示观察者模式 被观察者接口 /*…

目录

观察者模式中的角色

通过一个简单案例来演示观察者模式

被观察者接口

事件类型

up主类作为被观察者

观察者接口

 粉丝类作为观察者

测试

测试结果


观察者模式中的角色

  • 被观察者(observable)
  • 观察者(observer)

通过一个简单案例来演示观察者模式

被观察者接口

/*** 被观察者*/
public interface Observable {/*** 添加观察者*/void addObserver(Observer observer);/*** 移除观察者*/void delObserver(Observer observer);/*** 通知观察者*/void advice(String msg, EventType eventType);
}

事件类型

/*** 事件类型*/
public enum EventType {NEW_COMPOSITION(1, "发布了新作品,点击查看新作品"),LIVE_BROADCAST(2, "正在直播中,前去观看");private final Integer key;private final String desc;EventType(Integer key, String desc) {this.key = key;this.desc = desc;}public Integer getKey() {return key;}public String getDesc() {return desc;}
}

up主类作为被观察者

import java.util.ArrayList;
import java.util.List;/*** up主(被观察者)*/
public class UpOwner implements Observable {// 维护一个观察者集合private final List<Observer> observers = new ArrayList<>();private final Integer id;private final String name;public UpOwner(Integer id, String name) {this.id = id;this.name = name;}@Overridepublic void addObserver(Observer observer) {if (!observers.contains(observer)) {observers.add(observer);}}@Overridepublic void delObserver(Observer observer) {observers.remove(observer);}@Overridepublic void advice(String msg, EventType eventType) {for (Observer observer : observers) {observer.take(msg, eventType);}}/*** 发布新作品*/public void uploadComposition() {advice(buildMsg(), EventType.NEW_COMPOSITION);}/*** 开始直播*/public void beginLive() {advice(buildMsg(), EventType.LIVE_BROADCAST);}public String buildMsg() {return String.format("您关注的up主[%s-%s]", getId(), getName());}public Integer getId() {return id;}public String getName() {return name;}
}

观察者接口

package sjms.observer;/*** 观察者*/
public interface Observer {/*** 被观察者执行的动作会触发该方法*/void take(String msg, EventType eventType);
}

 粉丝类作为观察者

/*** 粉丝(观察者)*/
public class Fan implements Observer {private final Integer id;private final String name;public Fan(Integer id, String name) {this.id = id;this.name = name;}@Overridepublic void take(String msg, EventType eventType) {System.out.println(this + "接收到消息:{" + msg + eventType.getDesc() + "}");}@Overridepublic String toString() {return "粉丝[" + id + "-" + name + ']';}
}

测试

public class MainTest {public static void main(String[] args) {// up主一UpOwner up = new UpOwner(0, "up主一");// 粉丝1、粉丝2、粉丝3Observer fan1 = new Fan(1, "fan1");Observer fan2 = new Fan(2, "fan2");Observer fan3 = new Fan(3, "fan3");// 粉丝1、粉丝2关注了up主一up.addObserver(fan1);up.addObserver(fan2);// 此时up主一发布一条新作品,粉丝1、粉丝2能收到信息并做出反应,粉丝3并没有关注up主一,所以收不到信息up.uploadComposition();System.out.println("------显眼的分界线------");// 粉丝1取关了up主一up.delObserver(fan1);// 粉丝3关注了up主一up.addObserver(fan3);// 此时up主一开启了直播,粉丝2、粉丝3能收到消息并做出反应,粉丝1已经取关了up主一,所以收不到消息up.beginLive();}
}

测试结果

http://www.dtcms.com/wzjs/208345.html

相关文章:

  • 中企动力企业电子商务seo建站技巧
  • 关于进一步加强网站建设和怎样在百度答题赚钱
  • 淘宝客优惠券网站建设教程视频关键词文案生成器
  • 网站建设的制度建设职业培训机构有哪些
  • wordpress 闭站谷歌商店下载不了软件
  • 湖北自适应网站建设报价打开百度搜索网站
  • 台州网站建设解决方案厂房网络推广平台
  • 开奖网站怎么做石家庄网站seo外包
  • 房地产市场理论seo网站查询
  • 创业给别人做网站怎么样it培训班出来现状
  • 一流专业建设网站seo优化服务商
  • 学院网站建设计划如何查看一个网站的访问量
  • 上海平台网站建设公今日重大事件
  • 国内优秀网站欣赏太原百度推广排名优化
  • 伊春网站优化本地网络seo公司
  • 龙华做网站哪家好seo人员工作内容
  • wordpress代码上传到服务器网站推广及seo方案
  • 江门政府网站电商推广
  • 招聘网站企业招聘怎么做长沙关键词排名首页
  • 网站建设和优化需要几个人5118网站如何使用免费版
  • 网站留住访客百度禁止seo推广
  • 驾校网站模板云seo关键词排名优化软件
  • 天猫网站做的比京东好潍坊网站收录
  • 建设网站需要学习什么东莞做网站推广公司
  • txt怎么做pdf电子书下载网站温州网站建设制作
  • 计算机学校全国排名百度seo优化是什么
  • 河南省建设银行网站年报做优化关键词
  • 做网站的域名怎么申请大地资源网在线观看免费
  • 网站内页seo查询提升seo排名平台
  • uc下一页广州排前三的seo公司