我有一个只有几个字段的类,但它代表了一个相对复杂的数据结构。这个课程是我的课程的核心,随着时间的推移,我发现自己添加了越来越多的功能,让事情变得一团糟。由于(几乎)所有方法都依赖于其内部字段,因此我无法想到将其他方法移动到其他地方的方法,即使大多数方法彼此独立。 如何重构此类以使其更简单并减少直接在其中实现的方法的数量?
有问题的类代表了一种自动机。它支持大量操作,例如检索有关它的信息,在它与其他自动机之间执行各种二进制操作,查询存储在其中的特定信息,将其保存到文件等。几乎所有这些操作都依赖于它的精确实现。 class - 在我的特定情况下,我维护一个基于边集的实现,但是过去也使用了其他实现,并且可能在将来再次使用。
除了常用的一小组基本辅助方法外,大多数方法都是相互独立的。
我使用的语言是Java,但我希望能够应用于任何静态类型的面向对象语言的一般答案。
我尝试以某种方式将其重构为多种类型,但是它的每个操作都需要访问其大多数字段,而我对将这些操作迁移到其他地方犹豫不决,因为我无法想到一种方法来做到这一点而不暴露班级的实施。
我也不确定 我应该将操作迁移到哪里,假设它们确实独立于实现。外部实用类?抽象基类型?对此有任何意见。
答案 0 :(得分:0)
也许您可以重新构建您的类所拥有的数据,这样它不会直接保存数据,而是保存包含数据的对象?然后,您可以将操作该数据的方法移动到新类中,将原始类保留为一种容器/调度程序类。