部分类或继承

时间:2014-03-18 09:55:37

标签: c# design-patterns inheritance

我有一个神级,我们称之为Aphordite已经有1000行代码,我正在编写一个方法列表来检查该类的可行性,并且它是500多行代码。

现在我不知道将这些方法放入类中是否更好(将增加到1500多行),使用继承或静态创建一个部分类(但我读它是代码生成器的解决方案)只包含这些方法的类。

考虑到这些方法只会被Aphrodite调用,最佳解决方案是什么?

3 个答案:

答案 0 :(得分:0)

如果你绝对这样做,你可以在Aphrodite内定义一个内部类(并在其中的一个部分定义内)并使其成为一个静态类来包含这些方法。至少在你重构它之前。

答案 1 :(得分:0)

更好的方法是将整个代码(1500多行)拆分为更多不同的子类。然后他们应该继承你的主要类Aphrodite。

然后您就可以从主类中运行所有方法。

第二种不太好的方法是创建一个静态类Aphrodite,它在公共属性中创建所有新子类的静态单例对象。 有了它,您可以像这样调用主类中的每个子类:

// names are only for example :)
Aphrodite.Wine.Drink();
Aphrodite.Wine.NotDrive();
Aphrodite.Bottle.FillWithWine();
Aphrodite.Bottle.DrinkFromBottle();

答案 2 :(得分:0)

应用"Pure fabrication" GRASP pattern(听起来像你很绝望):

  

当你绝望,谁不想违反高凝聚力和低耦合时,谁负责?

     

将一系列高度凝聚力的责任分配给人为或便利的行为"不代表问题域概念的类 - 构成的东西,以支持高内聚,低耦合和重用。

它也像"Extract class" refactoring一样简单。但实际上,如果你不提供更多细节,很难说。