1

我的问题

我有一个只有几个字段的类,但它代表了一个相对复杂的数据结构。这门课是我程序的核心,随着时间的推移,我发现自己在其中添加了越来越多的功能,让事情变得一团糟。由于(几乎)它的所有方法都依赖于它的内部字段,我想不出一种将一些方法移到其他地方的方法,即使大多数方法都是相互独立的。如何重构这个类以使其更简单并减少直接在其中实现的方法的数量?

更多信息

有问题的类代表一种自动机。它支持大量操作,例如检索有关它的信息,在它与其他自动机之间执行各种二进制操作,查询存储在其中的特定信息,将其保存到文件等。几乎所有这些操作都取决于类 - 在我的特定情况下,我维护一个基于边缘集的实现,但过去也使用过其他实现,并且将来可能会再次使用。

除了少数常用的基本辅助方法外,大多数方法都是相互独立的。

我使用的语言是 Java,但我希望得到可以应用于任何静态类型、面向对象的语言的一般答案。

我试过的

我尝试以某种方式将其重构为多种类型,但是它的每个操作都需要访问其大部分字段,并且我对将这些操作迁移到其他地方犹豫不决,因为我想不出一种方法可以在不暴露类的实现的情况下做到这一点。

我也不确定应该将操作迁移到哪里,假设它们确实独立于实现。外部实用程序类?抽象基类型?将不胜感激有关此的任何意见。

4

1 回答 1

0

也许您可以对您的类所持有的数据进行重新建模,这样它就不是直接持有数据,而是持有持有数据的对象?然后,您可以将操作该数据的方法移动到新类中,将原始类保留为一种容器/调度程序类。

于 2012-04-05T14:30:02.340 回答