现在的位置: 首页 > 综合 > 正文

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

2013年04月30日 ⁄ 综合 ⁄ 共 3339字 ⁄ 字号 评论关闭

原本关系:


狗猫鼠:

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会跳,等其他的行为
那这个事件添加的方式感觉相当不太好,等待以后重构


抱歉!评论已关闭.