打破一个庞大的,有凝聚力的课程

use*_*588 5 oop design-patterns

我认为课程太长了.我真的不知道什么是太久意味着它只有2500行代码.但是,所有方法都使用至少一个或多个变量,因此我认为它非常有凝聚力.我想仍然把这个类分成几个较小的类,它们会使用三个相同的变量.这是一个糟糕的设计还是代表一种模式?

class MyClass
{
    ...
    MyVar1 myVar1;
    MyVar2 myVar2;

    public void DoStuff()
    {
         ...
         MyPart1 myPart1 = new MyPart1(this,myVar1,myVar2);
         myPart1.DoStuff();

         MyPart2 myPart2 = new MyPart2(this,myVar1,myVar2);
         myPart2.DoStuff();
    }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*ngs 7

你通常不能说2500行代码对于一个类来说太多了.

但是,你可以说一个用于10种不同动作的类是非常单一的.这里的一些人说每个类应该只有一个功能.这些人会将"10"视为二进制...

现在,如果你没有机会将你的班级分成两半,可能首先要拆掉小功能部件.通过这种方式,您可以更好地了解对类的功能至关重要的内容.

首先看一下你的方法:如果你的类有几个基本属于同一范围的方法(例如XML-I/O或类似Play/Pause/Stop/Reset函数集),你可以为它们创建一个子类.
如果你所有的方法都相同(即与上面相反),我会说你的课程不是太大.

但最重要的是,您不会丢失代码中的方向.尝试构建您的类并按照最合适的方式订购您的方法.并且不要忘记评论此订单,以便您再次轻松进入...

  • 我将冒险尝试downvote,并声明在2500行代码中所有类的97%是大的:-) (3认同)