我有一个BigStructure类,它通过一些输入来构建复杂的数据结构。它还包括在该数据结构上执行操作的方法。

该类太大了,因此我尝试将其分成两部分以帮助维护。我以为将操作移到新类中是很自然的,例如OperationsOnBigStructure类。

不幸的是,由于BigStructure类非常独特,因此OperationsOnBigStructure无法与其他任何类合理地重用。从某种意义上说,它永远与BigStructure绑定(bind)在一起。例如,典型的操作可能包括以仅对BigStructure对象有意义的方式遍历大型结构实例。

现在,我有两节课,但感觉好像我没有任何改善。实际上,由于我现在需要将BigStructure对象传递给OperationsOnBigStructure中的方法,并且我需要在内部存储该对象,因此事情变得有些复杂。

我应该只住一个大类吗?

最佳答案



我要说的是,这与面向对象设计的含义完全相反。 OOD背后的想法是将数据和方法保持在一起。

通常,(太)大类(class)是责任过多的征兆:即,您的类(class)干得太多。看来您首先定义了一个数据结构,然后向其中添加了功能。您可以尝试将数据结构分解为子结构,并为这些子结构定义独立的类(即使用聚合)。但是不知道更多,很难说...

当然,有时,一个程序只在一个大类上运行良好。但是,如果您自己对此感到不舒服,则强烈建议您开始针对...

10-08 02:29