2009-11-30 155 views
0

我有一个已有的订单类,有很多属性和方法。我现在需要创建一个子订单类,它是订单类的一个子集。它不仅具有许多排序类的字段,还可能有许多相同的计算方法,可能在某些地方有一两行差异。订单类则需要包含一个子订单对象列表。我将如何去创建子目录类?我应该从订单类派生吗?订单和子订单

回答

0

它似乎是重构的情况...
尽管Order类很容易存在,但它的一些属性和方法似乎需要移动到OrderSubClass。
如果这两个类的某些属性和行为是共同的,那么创建一个公共基类(或一个接口)也可能是合适的。

一旦上述安排,Order类可以成为SubOrders的容器,这似乎是问题中指出的方向。

0

如果子订单不共享订单的所有属性,我不会从订单派生子订单。

相反,制作一个具有共享行为和属性并从基类派生Order和Suborder的公共基类。

0

Composite Pattern可能会给你一个所需的设计小费。

我愿意层次结构是这样的:

OrderBase 
    |--> MainOrder 
    |--> Suborder 

,或者MainOrder和亚目有足够的不同,那么接口将是更好的使用:

MainOrder <--- IOrder 
Suborder <--- IOrder 

但是,这将不共享实现。