我有一个非常大且臃肿的类,我想将它拆分为单独的文件,但它应该对用户完全透明,并且与使用该类的现有项目兼容。
特别是我有自己的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[] 都无法实现类似的效果。有很多代码重复,这是将类似方法组合在一起的主要原因。如果我添加一个函数或者我改变了全局行为(比如错误检查),我可以很容易地保持事情的连贯性。