1. 我本想把每个角色杀,闪,锦囊的使用,被使用等情况作为角色的方法或属性,以便于在系统结算流程方法中传入发动目标和被指定为目标的对象,然后依次调用他们自身的方法结算,但是这样造成类的属性和方法爆炸,因为有太多的阶段,指定目标和被指定目标的过程,另外如果以后扩展也不便于扩展新的角色,牌。
2. 把每个流程结算作为1个对象,比如说邓艾被拆,进行判定获得田,但是这样的话产生的自由组合无穷无尽,如果新加1个角色或牌,那么就要加与其相关的很多类,也是类爆炸。
如果用面向过程的编程方法,就是在扩展的时候只加这个角色的技能,传相应的目标进来结算即可,但是应该怎么用面向对象思考这个问题呢?
并不是把每个流程算作一个对象,而是每个流程都是一个对象的事件,
比如邓艾失去一张牌时膜一张,这时基类中就需要有 回合外失去一张 这个事件
这时你设计邓艾这个子类时,只要实现这个事件就可以了.
武将只有一个类,邓艾就是属性而已,不需要那么累。