观察者模式1.1_大话设计模式学习笔记14

小菜写的第一份代码:

1、前台秘书类

  • 属性
    1、既然是帮忙打掩护,就要搞清楚帮谁打掩护了。所以就要有个同事列表observers,记录那些上班开小差需要僚机的同事。
    2、用action(String类型)存储提醒同事的内容,比如:老板回来了、老板出去了、…
  • 方法
    1、Attach方法可以添加新的需要打掩护的同事;
    2、Notify方法可以一一为列表里的同事通风报信;
    3、SecretaryAction方法操作action,设置通风报信的内容;

public class Secretary {
	// 同事列表
	private List<StockObserver> observers =
			new ArrayList<StockObserver>();
	// 密保内容
	private String action;
	
	public Secretary() {
		super();
	}
	
	// 添加
	public void Attach(StockObserver observer) {
		observers.add(observer);
	}
	
	// 通知
	public void Notify() {
		for(StockObserver o : observers) {
			o.Update();
		}
	}
	
	// 前台状态
	public String SecretaryAction() {
		return action;
	}
	public void SecretaryAction(String action) {
		this.action = action;
	}
}

2、看股票同事类

  • 属性:
    1、姓名
    2、帮忙当僚机的前台秘书对象
  • 方法:
    1、得到前方密保,采取对应措施:开始认真工作

public class StockObserver {
	
	private String name;
	private Secretary sub;
	
	public StockObserver(String name, Secretary sub) {
		this.name = name;
		this.sub = sub;
	}
	
	public void Update() {
		System.out.println(sub.SecretaryAction() + this.name +
				" 关闭股票行情,继续工作!");
	}
}

3、客户端代码

public class Observer1Demo {

	public static void main(String[] args) {
		Secretary tongzizhe = new Secretary();
		
		StockObserver tongshi1 = new StockObserver("大鸟", tongzizhe);
		StockObserver tongshi2 = new StockObserver("小菜", tongzizhe);
		
		tongzizhe.Attach(tongshi1);
		tongzizhe.Attach(tongshi2);
		
		tongzizhe.SecretaryAction("老板回来了!");
		tongzizhe.Notify();
		
	}

}

4、输出结果

老板回来了!大鸟 关闭股票行情,继续工作!
老板回来了!小菜 关闭股票行情,继续工作!

缺点:前台类就只通知了看股票者类,如果有其他同事在干别的事就没有通知到了。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的clz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值