首页 新闻 搜索 专区 学院

如何使用面向对象的思维思考三国杀的技能发动流程?

0
[待解决问题]

1. 我本想把每个角色杀,闪,锦囊的使用,被使用等情况作为角色的方法或属性,以便于在系统结算流程方法中传入发动目标和被指定为目标的对象,然后依次调用他们自身的方法结算,但是这样造成类的属性和方法爆炸,因为有太多的阶段,指定目标和被指定目标的过程,另外如果以后扩展也不便于扩展新的角色,牌。

2. 把每个流程结算作为1个对象,比如说邓艾被拆,进行判定获得田,但是这样的话产生的自由组合无穷无尽,如果新加1个角色或牌,那么就要加与其相关的很多类,也是类爆炸。

 

如果用面向过程的编程方法,就是在扩展的时候只加这个角色的技能,传相应的目标进来结算即可,但是应该怎么用面向对象思考这个问题呢?

Thirty的主页 Thirty | 菜鸟二级 | 园豆:252
提问于:2015-07-08 08:50
< >
分享
所有回答(2)
0

并不是把每个流程算作一个对象,而是每个流程都是一个对象的事件,

比如邓艾失去一张牌时膜一张,这时基类中就需要有  回合外失去一张 这个事件

这时你设计邓艾这个子类时,只要实现这个事件就可以了.

吴瑞祥 | 园豆:28937 (高人七级) | 2015-07-08 10:17
0

武将只有一个类,邓艾就是属性而已,不需要那么累。

爱编程的大叔 | 园豆:30753 (高人七级) | 2015-07-08 13:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册