我有一个很大的且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/