观察者模式 股票实例

2023-05-16

演示注册的投资者在股票市场发生变化时,可以自动得到通知

在这里插入图片描述
抽象通知者:

public abstract class Stock {

	protected String symbol;
	protected double price;
	private ArrayList<Investor> investors=new ArrayList<Investor>();
	
	public Stock(String symbol, double price) {
		super();
		this.symbol = symbol;
		this.price = price;
	}

	public String getSymbol() {
		return symbol;
	}

	public void setSymbol(String symbol) {
		this.symbol = symbol;
	}

	public double getPrice() {
		return price;
	}

	public void setPrice(double price) {
		this.price = price;
		Notify();
	}
	
	public void Attach(Investor investor) {
		investors.add(investor);
	}
	
	public void Detach(Investor investor) {
		investors.remove(investor);
	}
	public void Notify() {
		for(Investor i:investors)
			i.Update(this);
	}
}

具体通知者:

public class IBM extends Stock {

	/**
	 * @param symbol
	 * @param price
	 */
	public IBM(String symbol, double price) {
		super(symbol, price);
		
	}
}

观察者接口:

public interface IInvestor {

	void Update(Stock stock);
}

具体观察者:

public class Investor implements IInvestor {

	private String name;
	private Stock stock;
	
	public Investor(String name) {
		this.name = name;
	}

	public Stock getStock() {
		return stock;
	}

	public void setStock(Stock stock) {
		this.stock = stock;
	}

	@Override
	public void Update(Stock stock) {
		System.out.println(name+" "+stock.symbol+" "+stock.price);
	}

}

客户端:

public class Main {

	public static void main(String[] args) {
		
		Investor s=new Investor("aaa");
		Investor b=new Investor("bbb");
		
		IBM ibm=new IBM("IBM",120);
		ibm.Attach(s);
		ibm.Attach(b);
		
		ibm.setPrice(120.00);
		ibm.setPrice(120.70);
		ibm.setPrice(120.32);
		ibm.setPrice(120.48);
	}

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

观察者模式 股票实例 的相关文章

  • 观察者模式--Java设计模式

    观察者模式定义 xff1a 定义了对象之间的一对多的依赖 xff0c 这样一来 xff0c 当一个对象发生改变状态的时候 xff0c 它的所有依赖者都会收到通知并自动更新 参考如下图 xff1a 观察者设计模式也叫发布 订阅模式 也可以称作
  • 用C#实现MVC+观察者模式(WINFORM)

    用C 实现MVC xff08 Model View Control xff09 模式介绍 益处 下载案例 xff1a https download csdn net download gigizhongyan 13011332 在我们的开发
  • Java 观察者模式 详解

    观察者模式是一种常见的设计模式 xff0c 也称作发布 订阅模式 它主要解决了对象之间的通知依赖关系问题 在这种模式中 xff0c 一个对象 xff08 称作Subject xff09 维护着一个对象列表 xff0c 这些对象 xff08
  • Javascript设计模式-07-观察者模式(发布订阅模式)

    Javascript设计模式 07 观察者模式 发布订阅模式 简介 观察者模式又叫发布订阅模式 他定义了一种一对多的关系 让多个观察者对象同时监听某一个主体对象 这个主体对象发生改变时就会通知所有观察者 使得他们能够自动更新自己 提供一种抽
  • iOS架构师_观察者模式

    定义 观察者模式 有时又被称为模型 视图 View 模式 源 收听者 Listener 模式或从属者模式 一个目标物件管理所有相依于它的观察者物件 并且在它本身的状态改变时主动发出通知 这通常透过呼叫各观察者所提供的方法来实现 此种模式通常
  • 使用JS实现一个简单的观察者模式(Observer)

    聚沙成塔 每天进步一点点 专栏简介 手撸Observer 写在最后 专栏简介 前端入门之旅 探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅 这个专栏是为那些对Web开发感兴趣 刚刚
  • [C++]观察者模式

    当对象间存在一对多关系时 则使用观察者模式 Observer Pattern 比如 当一个对象被修改时 则会自动通知它的依赖对象 观察者模式属于行为型模式 C 代码如下 此文件包含 main 函数 程序执行将在此处开始并结束 参考大话设计模
  • C++ 大话设计之《外观者模式》(优缺点,设计原理,常用场景)

    外观者模式是一种 结构型模式 优点 它可以简化客户端与子系统之间的交互 使得客户端更容易使用子系统 它可以降低客户端与子系统之间的耦合度 使得客户端不需要直接与子系统类交互 它可以在不影响客户端的情况下改变子系统的实现 缺点 它可能会限制客
  • 记录开发中使用的设计模式之发布订阅者模式(观察者模式)

    一 开发场景 当我们在开发中涉及到大量的调用跨应用API的时候 需要按照场景书写大量的重复性代码 常规的做法就是通过if else进行场景判断 进行调用 代码十分的冗余 重复性的调用方法 不利于后期的维护 而为了更好的针对某些场景 去调用对
  • springBoot 观察者模式

    观察者设计模式 jie神说用订阅和发布来理解更好 我想了一下是的 为什么呢 因为监听器这个名词听起来是一个主动的 可实际监听器是一个被动的玩意 比如我们事件源发布一个事件 然后监听器订阅了这个事件就能做出动作 里面涉及到三个对象 事件源 事
  • SpringEvent事件监听、事件驱动,观察者模式

    文章目录 一 SpringEvent也叫做事件监听 事件驱动 1 1主要成员 1 1 1EventDtoPush事件生产者 该类属于开发范畴 1 1 2EventDtoListener事件生产者 该类属于开发范畴 1 1 3Applicat
  • google Guava之EventBus

    文章目录 EventBus基本用法 1 创建Listener 2 创建EventBus并发送消息 Listener之间的继承关系 Subscriber 不同类型参数的Subscribe event 继承关系的event DeadEvent
  • 观察者模式(推模型+拉模型)

    观察者模式 Observer Pattern 当一个对象被修改时 会自动通知它的依赖对象 现在我们是新闻社 要向所有新闻订阅者推送新闻 那么该如何实现呢 经过思考我们不难发现一家新闻社一般对应的是多个新闻订阅者 那么我们先从新闻社开始入手
  • 设计模式入门(二)观察者模式

    设计模式入门 本系列所有内容参考自 HeadFirst设计模式 因为书中的代码是采用java语言写的 博主这里用C 语言改写 这里采用讲故事的方式进行讲解 若有错误之处 非常欢迎大家指导 设计模式 模式不是代码 而针对设计问题的通用解决方案
  • 【gitHubDailyShare】开源的 C++ 入门学习资源,C++ 匠心之作

    分享 GitHub 上一份开源的 C 入门学习资源 Cpp 0 1 Resource 主要包含以下内容 第 1 阶段 C 匠心之作 从 0 到 1 入门 第 2 阶段实战 通讯录管理 第 3 阶段 C 核心编程 第 4 阶段实战 基于多态的
  • 五、命令模式

    五 命令模式 1 模式结构及结构图 模式结构 1 1 命令抽象类 Command 声明执行命令的接口 具有命令执行的抽象方法execute 1 2 具体命令类 concrete Command 实现命令接口 它具有接收者对象 并调用接收者对
  • 2.C++设计模式 - 观察者模式

    class Observer public 构造 Observer 析构 virtual Observer 更新 virtual void updata class Server private 观察者链表 list
  • Java设计模式(1):观察者模式

    面向对象思想设计原则 在实际的开发中 我们要想更深入的了解面向对象思想 就必须熟悉前人总结过的面向对象的思想的设计原则 1 单一职责原则 其实就是开发人员经常说的 高内聚 低耦合 也就是说 每个类应该只有一个职责 对外只能提供一种功能 而引
  • cpp: Observer Pattern

    Gold h 此文件包含 Gold 类 Observer Pattern 观察者模式 C 14 Jewelry Observer Pattern 观察者模式 2023年5月10日 涂聚文 Geovin Du Visual Studio 20
  • Java监听器与观察者模式

    Java监听器与观察者模式 Java中的监听器 Listener 和观察者模式 Observer Pattern 都是用于处理对象间的事件通知和响应的设计模式 它们的目的是在对象之间建立一种松散的耦合 使得一个对象的状态变化可以通知到其他对

随机推荐