设计模式-观察者模式

1. 总述

介绍:
观察者模式是行为模式,是将一个对象与其其他对象进行关联,当对象发生改变时 通知关联对象发生状态改变,自动刷新状态。这个模式作用是一种同步通信的手段, 是对象与关联对象保持同步。
可以用于以下场景:

  • 侦听事件驱动程序设计中的外部事件
  • 侦听/监视某个对象的状态变化
  • 发布者/订阅者(publisher/subscriber)模型中,当一个外部事件(新的产品,消息的出现等等) 被触发时,通知邮件列表中的订阅者

2.代码

因为时间原因直接粘贴代码了,注释很清楚。
在这里插入图片描述
1.测试类

package Jobserver;

import java.util.Observer;

/**
* 观察者模式:
* <p>
* 模式:行为模式
* <p>
* 介绍:
* 观察者模式是行为模式,是将一个对象与其其他对象进行关联,当对象发生改变时
* 通知关联对象发生状态改变,自动刷新状态。这个模式作用是一种同步通信的手段,
* 是对象与雨来对象保持同步。
* <p>
* 组成:
* subject被观察对象:
* 被观察的对象。当需要被观察的状态发生变化时,
* 需要通知队列中所有观察者对象。Subject需要维持(添加,删除,通知)一个观察者对象的队列列表
* concreateSubject 具体观察者:
* Observer被观察者:
* ConcreateObserver被观察者的具体实现:
* <p>
* 图示:
*
* <p>
* 优缺点:
* <p>
* 案例:
* 侦听事件驱动程序设计中的外部事件
* 侦听/监视某个对象的状态变化
* 发布者/订阅者(publisher/subscriber)模型中,当一个外部事件(新的产品,消息的出现等等)
* 被触发时,通知邮件列表中的订阅者
*/
public class MainClass {

   //使用jdk提供的工具类Observer,模拟发送订阅通知
   public static void main(String[] args) {

       Pusher pusher = new Pusher();
       //添加观察者
       pusher.addObserver(new Accepter());
       pusher.addObserver(new Accepter());
       pusher.addObserver(new Accepter());
       //发送最新推送消息
       pusher.putNews();

   }

}

  1. 被观察者
package Jobserver;

import java.util.Observable;

/**
 * 信息推送者,(被观察者)
 */
public class Pusher extends Observable {


    //推送者发送新的信息
    public void putNews(){

        System.out.println("写了一个新的段子,我要发送给我的关注粉丝");

        //状态改变
        this.setChanged();
        //通知观察者更新状态
        this.notifyObservers();
    }

}

package Jobserver;


import java.util.Observable;
import java.util.Observer;

/**
 * 接受者(观察者)
 * 需要实现Observer接口,定义统一的调用接口
 */
public class Accepter implements Observer {


    @Override
    public void update(Observable o, Object arg) {
        System.out.println(o.toString() + "----状态改变,关联对象刷新状态");
    }
}

在这里插入图片描述

关于jdk的被观察者父类和观察者接口的分析可以查看我github上的另一个案例。

在这里插入图片描述

github地址: https://github.com/mashenghao/design

博克智能服装CAD视频教程, 博克智能服装CAD是目前智能化程度最高的服装CAD系统。本软件基于自动识别技术的智能模式,一支笔可以实现绝大部分的设计及工艺处理功能,相比较传统的CAD几百个工具,大大简化了操作步骤和操作难度。本软件还集成了各类原型以及常见的各类服装款式,通过参数化处理,使图形与尺码规格表建立自动关联,能够实现快速设计,全自动智能放码,数字化记忆以及连动修改技术更可以方便版型修改。使用本系统可以带来效率及品质的极大提升,为企业节省更多的成本。 博克CAD产品的优点总结如下: 1、无需选择任何工具,独创的智能模式可以使用鼠标完成绝大部分操作; 2、先进的智能自动放码使放码时间缩短为零,效率提升无与伦比; 3、强大的修改功能胜过任何同类产品,关联修改数字化记忆方便实用; 4、自动设计功能快速生成常见纸样,极大缩短了设计时间和设计难度; 5、更加先进的文件加密方式可以确保您的劳动成果不被 取; 6、先进的自动保存功能,确保您的劳动成果万无一失; 7、国际标准的售后服务免除您的后顾之忧; 8、领先的开发实力确保产品升级持续快速; 9、博克网站提供强大的在线支持,方便学习、下载软件和纸样、人才介绍等。 10、最好的性价比让您获得最好的回报。 性能参数 博克CAD系统与常见CAD比较: 博克服装CAD 其它服装CAD 智能化 智能笔可以完成大部分功能,不需要太多快捷键。步骤少。 只有部分点线功能,不能放码及裁片处理,需要很多快捷键。步骤多。 自动化 具备自动放码功能,定数也可以自动放码,自动放码数据可以转换为点放码数据。 有些有自动放码功能,必须使用公式,自动放码数据与点放码数据不能转换。 修改功能 联动修改可以实现关联部位自动修改,数字化记忆功能方便修改任何数据。 一般没有联动修改与数字化记忆。 集成化 纸样、放码、排料集成在一起,保存一个文件,方便修改 一般分成两个或三个模块,保存几个不同文件,不方便修改。 其它功能 具备安全恢复功能、文件加密功能、网络升级等 一般没有这些功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值