【发布时间】:2012-08-09 21:08:38
【问题描述】:
我有以下对象模型:
class CheckoutAd{
int AdId;
int ImpressionCap;
int ClickCap;
int ConversionCap;
// ...
}
class SiteAd{
int AdId;
int ImpressionCap;
int ClickCap;
//...
}
如您所见,有重复的代码。所以我决定把重复的代码放在一个基类中,并从基类扩展上述类,如下所示:
class BaseAd{
int AdId;
int ImpressionCap;
int ClickCap;
}
但后来我想到将来会有一个 MobileAd 类,这个基类可能不是一个好的候选者,然后我不得不改变它。
我应该委托这些属性吗?
你会怎么做?
我应该使用策略模式吗?我将如何委派这种行为?
【问题讨论】:
-
顺便说一句,我认为您应该分享一些有关您的意图的更多信息。这将使回答这个问题更容易一些。
-
我看到的只是字段,而不是行为。
-
这就是想法。如果我将公共字段放在这两个类之间。将来我可能不得不打破它。但是,如果我将来将它们转换为行为,我将不必打破层次结构。
-
现在做有意义的事。除非您知道会发生什么,否则在未来进行校对是没有意义的。
-
当前的基类不适合 MobileAd 类怎么办?或者,换一种说法,在当前的两个类和 MobileAd 之间将共有哪些行为/属性?只有您知道答案,因为我们目前还没有足够的信息。
标签: c# design-patterns inheritance composition