定义成一个类,而不是两个,并且用一个Type字段表示它是哪一种。

解决方案 »

  1.   


    你是说,再加个A类,然后,多一个属性,比如INT类型 ,1为充值,2为购买,其它两个属性为这两个类这把A类序列化是吧。。
      

  2.   


    你是说,再加个A类,然后,多一个属性,比如INT类型 ,1为充值,2为购买,其它两个属性为这两个类这把A类序列化是吧。。肯定不是这样“胡乱拼凑在一起”的。如果你有200个命令,难道要顶一“其它200个属性为这200个类”吗?随时会增加命令,就随时打破设计吗?我肯定不是跟你说这种东西。
      

  3.   

    如果你满脑子是拼凑的思路,不管是“定义两个属性来引用两类对象”,还是“把所有命令的所有属性都定义在一个“大命令”内部,那么我觉得你可以假设自己什么都没有想过,重新思考最基本的问题。“封装”是分层次的意思,就是要把你表达的东西分出层次来。不能分层、永远只能从底层做起,就不好办了。例如我们使用 json 格式来传递对象,就是把目标对象变成了元对象格式,然后把元对象放到别的目标对象中处理。这就是层次。