假设卖车票
车票有:单次票,周票,月票,年票
还分:可充值型,不可充值型
还分:原价票,打折票(如学生票)
另外还有一种单独的:旅游票那么这样的OO设计要怎么做呢?我现在的想法是
一个Abstract 的 Ticket class
然后,单次(single),周票(weekly),月票(Monthly),年票(Annual)都是Ticket的子类然后建了2个Interface: Rechargeable(可充值),Throughaway(不可充值).让各类的票去加载相应的Interface.不过这个时候问题出现了,原价票和打折票放哪? 要怎么做?
我现在的UML图

解决方案 »

  1.   

    哟 UML嘛 看着我就很兴奋挖从OOD的思想里面   我个人认为应该把原价还是打折作为Ticket superclass 的 attribute建议在ticket里面加入discount:double    100%就是原价票   80%什么的就是打折票
      

  2.   

    看着你们都是Rational Rose 2003 是吗
      

  3.   

    如果你把旅行票作为一个单独的票种 那就不是OOD了  所有的票子都应该从ticket这里继承出来