我有一个很大的且class肿的类,我想将其拆分为单独的文件,但是它对用户应该是完全透明的,并且与使用该类的现有项目兼容。

特别是我有自己的ImageMatrix类,它定义了一吨一元函数,一吨带有标量的二元函数,一吨带有另一个图像的二元函数等。为了保持该类的干净和可维护,我希望将每类运算符放在一个单独的文件中。

有没有办法将这些方法剪切/粘贴到文件中并将其包括在源代码中?

因此,我希望我仍然可以这样做,但是方法实际上位于不同的文件中:

    ImageMatrix img = new ImageMatrix(800, 600, 3);
    img.clear(0.5f, 0.0f, 0,0f);
    img.addSelf(anotherImg);
    img.normalize();
    img.abs();
    img.addSelf(0.5);


每种方法大约需要15至30行代码,因为实现对性能进行了非常优化,而使用Bufferedimage甚至是简单的int []都无法实现类似的性能。代码重复很多,这是将相似方法组合在一起的主要原因。如果添加函数或更改全局行为(例如错误检查),则可以轻松保持事物的一致性。

最佳答案

您也可以使用委托方法。这意味着方法的定义仍在ImageMatrix中,但是它们在另一个类中实现。根据方法的复杂性,这可能会减少ImageMatrix中的代码量。

class ImageMatrix {

    MatrixHelperOne helperOne = new MatrixHelperOne();

    ...

    public void complexMethod1(Arg arg) {
        helperOne.complexMethod1(arg);
    }

    ...
}

关于java - $ include #include在Java中是否等效?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10025239/

10-13 05:04