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

期刊类网站建设中山网站建设企业

期刊类网站建设,中山网站建设企业,上海网站开发哪家好,渠道合作一站式平台导航一、行为描述二、角色关系三、代码示例一、行为描述 观察者会观察特定对象的状态变化#xff0c;一旦状态有所变化或产生特定条件#xff0c;被观察对象会通知给观察者#xff0c; 而观察者则会依据通知信息采取特定处理措施。 举个例子#xff0c;公司接到了一个大项… 导航一、行为描述二、角色关系三、代码示例一、行为描述 观察者会观察特定对象的状态变化一旦状态有所变化或产生特定条件被观察对象会通知给观察者 而观察者则会依据通知信息采取特定处理措施。 举个例子公司接到了一个大项目各个部门都在观察项目的进度一旦洽谈成功项目正式进入启动阶段 那么设计部就会出图纸开发部就会出流程、出架构售前部就会跑现场实地勘测… 项目就是被观察者而各个部门就是观察者。 二、角色关系 观察者模式就两种角色——观察者和被观察者。 观察者对象往往会规范结构一般是继承一个抽象观察者。 I. 抽象观察者会定义3个重要内容 被观察对象的引用构造函数——赋值被观察者、将this加入观察席通知函数 II. 子类观察者仅调用父类构造并实现通知函数即可。 III. 被观察者需要定义 4 个重要内容 状态变量。这是观察者存在的目的和关键。观察席。简单的说就是一个容纳观察者对象的容器可以是List、也可以是Map甚至是数组。入席函数。观察者应该在构造的时候通过入席函数将自身加入到观察席容器中。广播函数。与观察者的通知函数一样被观察者应该在状态变化时可以是 setter 函数调用观察席中各个观察者的通知方法。 三、代码示例 抽象观察者 /*** 观察者*/ Data public abstract class Observer {/*** 被观察对象*/protected ObserveTarget target;/*** 构造观察者时直接建立观察者与被观察者的关系*/public Observer(ObserveTarget target) {this.target target;target.getObservers().add(this);}/*** 接收广播消息*/abstract void recvMsg(); } 观察者1、观察者2 /*** 观察者1号*/ public class Observer1 extends Observer {public Observer1(ObserveTarget target) {super(target);}Overridevoid recvMsg() {System.out.println(Observer1-state target.getState());} }/*** 观察者2号*/ public class Observer2 extends Observer {public Observer2(ObserveTarget target) {super(target);}Overridevoid recvMsg() {// 观察者可以视情况选择性处理接收的消息if (target.getState() 1)System.out.println(Observer2-state target.getState());} } 被观察者 /*** 被观察目标*/ Data public class ObserveTarget {/*** 状态变量*/private volatile int state;/*** 观察席观察者容器*/private CollectionObserver observers new ArrayList();/*** 入席函数新增观察者*/public void addObserver(Observer observer) {observers.add(observer);}public void setState(int state) {this.state state;// 发送广播通知broadcast();}/*** 广播函数*/private void broadcast() {observers.forEach(o - o.recvMsg());} } 测试代码 public class TestObserve {public static void main(String[] args) {ObserveTarget target new ObserveTarget();Observer1 observer1 new Observer1(target);Observer2 observer2 new Observer2(target);target.setState(1);target.setState(2);target.setState(3);} }// output: Observer1-state 1 Observer2-state 1 Observer1-state 2 Observer1-state 3
http://www.yutouwan.com/news/3527/

相关文章:

  • 谈谈对电子商务网站建设的理解科技软件公司网站模板下载
  • qq网站推广代码建筑工程网库
  • 网站建设中所需条件有创意的文创产品
  • 做旅游宣传不错的网站网站建设开发报告论文
  • 建设企业网站企业网上银行助手下载网站标签怎么做
  • 微网站制作提供商推荐软件开发报价明细
  • 南宁网站建设找哪家开旗wordpress pdf缩略图
  • 卖房网站母亲节做什麽活动做网站的ui
  • iis中怎样配置网站绑定分析网站示例
  • 广东省建设厅投诉网站thinkphp cms开源系统
  • 中国移动网站建设建设合同网上备案上哪个网站
  • 聚财的公司名字大全肇庆网页关键词优化
  • 怎么自己做单页网站太原建设设计公司网站
  • 网站首页快照不更新装修流程先后顺序
  • 做网络教育录播网站自己想申请一个公司
  • 做网站的基本功百度网盘客户端下载
  • 青海省住房和城乡建设厅网站网站后台用什么浏览器
  • 网站站长 感受注册域名的网站有哪些
  • 网站开发培训太原wordpress企业官网主题下载
  • 建一个视频网站要多少钱枣庄网站建设
  • wordpress固定链接 404延安网站优化
  • 万州建设工程信息网站平台网站模板素材
  • 网站设计怎么好看免费域名申请流程
  • 企业建设网站目的是什么意思枣庄手机网站建设电话
  • 万全网站建设wl17581连接交换
  • 上海网站建设网页制作你却做网站公司那家好
  • 建设行政主管部门官方网站中国建设劳动学会是假网站吗
  • 网站怎样做超链接太原便宜做网站的公司
  • 国际网站如何做seo网站建设实力宣传海报
  • 合肥最好的网站建设公司受欢迎的网站开发