游戏中的设计模式之观察者模式 笔记

原文来自:https://github.com/TYJia/GameDesignPattern_U3D_Version

基本思想:事件与其他对象行为的解耦——例如一个代码描述了日本核电站爆炸的事件,世界人民买盐这种行为显然不应该由核电站爆炸直接调用,而是通过卫星电视告诉广大群众,群众想买盐还是想买仙人掌就由他们自己决定了~

为什么要使用它

  • 解耦,物价局改了粮价不需要挨家挨户通知公民,只需要让电视台播个新闻就好
  • 如果要挨家挨户通知,物价局必须有每个公民的地址,这显然不合理,也会浪费很多资源
  • 扩展困难——如果公民改了地址或者有新公民出生了,那还需要告诉物价局,这也很荒唐

 

代码示例:

射手(Shooter,观察者,这里是听众)告诉广播电台(Radio)自己要听发射气球的广播

吹气球的人(Emitter) 向上发出气球,并告诉广播电台自己发射了气球

广播电台广播发射了气球的消息,所有射手向气球射击

这个例子中吹气球的人不会关心谁是射手,射手也不用在意谁是吹气球的人

 

Emitter

通过EmitBall()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值