设计模式-观察者模式

目录

知识点1:什么是观察者模式

知识点2:模式的职责

知识点3:模式的实现

知识点4:应用场景


知识点1:什么是观察者模式

观察者模式(Observer),是一种行为性模型,行为型模式关注的是系统中对象之间的相互交互,解决系统在运行时对象之间的相互通信和协作,进一步明确对象的职责。相比来说,创建型模式关注对象的创建过程,结构型模式关注对象和类的组合关系。


知识点2:模式的职责

观察者模式主要用于1对N的通知。当一个对象的状态变化时,他需要及时告知一系列对象,令他们做出相应。

实现有两种方式:

推:每次都会把通知以广播的方式发送给所有观察者,所有的观察者只能被动接收。

拉:观察者只要知道有情况即可,至于什么时候获取内容,获取什么内容,都可以自主决定。


知识点3:模式的实现

//观察者的接口,用来存放观察者共有方法
public interface Observer {
   // 观察者方法
	void update(Subjecct subjecct);
}

//观察对象的父类
public class Subjecct {
	//观察者的存储集合
	private List<Observer> list = new ArrayList<>();

	// 注册观察者方法
	public void registerObserver(Observer obs) {
		list.add(obs);
	}
    // 删除观察者方法
	public void removeObserver(Observer obs) {
		list.remove(obs);
		this.notifyAllObserver();
	}

	// 通知所有的观察者更新
	public void notifyAllObserver() {
		for (Observer observer : list) {
			observer.update(this);
		}
	}

}
//具体观察者对象的实现
public class RealObserver extends Subjecct {
    //被观察对象的属性
	 private int state;
	 public int getState(){
		 return state;
	 }
	 public void  setState(int state){
		 this.state=state;
		 //主题对象(目标对象)值发生改变
		 this.notifyAllObserver();
	 }
	
}
public class Client {

	public static void main(String[] args) {
		// 目标对象
		RealObserver subject = new RealObserver();
		// 创建多个观察者
		ObserverA obs1 = new ObserverA();
		ObserverA obs2 = new ObserverA();
		ObserverA obs3 = new ObserverA();
		// 注册到观察队列中
		subject.registerObserver(obs1);
		subject.registerObserver(obs2);
		subject.registerObserver(obs3);
		// 改变State状态
		subject.setState(300);
		System.out.println(obs1.getMyState());
		System.out.println(obs2.getMyState());
		System.out.println(obs3.getMyState());
		// 改变State状态
		subject.setState(400);
		System.out.println(obs1.getMyState());
		System.out.println(obs2.getMyState());
		System.out.println(obs3.getMyState());
	}

}

知识点4:应用场景

关联行为场景,需要注意的是,关联行为是可拆分的,而不是“组合”关系。

事件多级触发场景。

跨系统的消息交换场景,如消息队列、事件总线的处理机制。

 

 

博克智能服装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、付费专栏及课程。

余额充值