[写在看《大话设计模式》时的遐想]狗猫鼠联动行为的问题(一)

原本关系:


狗猫鼠:

CatA看见狗会跑,CatB看见狗会对叫

MouseA看见猫会跑,MouseB看见猫会对叫


实现如下:


 狗叫了,名叫CatA的猫跑了,名叫CatB的猫叫了(意思就是对叫,表示不怕狗,也就是不跑)
 猫叫了,名叫MouseA的老鼠跑了,名叫MouseB的老鼠叫了(意思就是对叫,表示不怕狗,也就是不跑)


输出显示:

事件发生---->狗DogA叫了

名叫CatA的猫跑了它看见了DogA

名叫CatB的猫叫了它看见了DogA
名叫MouseA的老鼠跑了它看见了CatB

名叫MouseB的老鼠叫了它看见了CatB

事件发生---->猫CatA叫了
名叫MouseA的老鼠跑了它看见了CatA

名叫MouseB的老鼠叫了它看见了CatA

 

定义5个类

Aniaml

Dog: Aniaml

Cat : Aniaml

Mouse : Aniaml

AnimalEvent

 

控制台代码:

当前功能可以实现,但是,

现在是狗,猫,鼠
如果有10条狗,Dog1到10
6条猫,Cat1到6
8只老鼠,Mouse1到8
如果出现行为的特殊化 ,也就是说,Cat1看到Dog1、2、6、8跑,其他都是叫;Mouse1看到Cat3、4、5跑,其他叫,
或者
行为出现数量化 ,也就是说CAT1看到DOG1、3、5会跑,看到DOG2会跳,等其他的行为
那这个事件添加的方式感觉相当不太好,等待以后重构


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值