我有一个神级,我们称之为Aphordite
已经有1000行代码,我正在编写一个方法列表来检查该类的可行性,并且它是500多行代码。
现在我不知道将这些方法放入类中是否更好(将增加到1500多行),使用继承或静态创建一个部分类(但我读它是代码生成器的解决方案)只包含这些方法的类。
考虑到这些方法只会被Aphrodite
调用,最佳解决方案是什么?
答案 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一样简单。但实际上,如果你不提供更多细节,很难说。