从客户端封装内部数据结构:将列表更改为映射

时间:2017-12-28 17:18:22

标签: oop

我正在研究遗留代码,其中Configuration接口如下所示:

node

截至目前,只有1个客户端使用Configuration,但不同的客户端将在不久的将来开始使用它。我也可以预见丰富的配置,不能列入List,我可能需要存储在Map中,让我们说。

作为我的重构练习,我想封装Configuration的内部数据类型,这样即使我将 pid 更改为 public interface Configuration { public List<ConfigurationData> configurationDataList; } 不会影响现有客户。

请告诉我有关此问题的最佳做法。

1 个答案:

答案 0 :(得分:0)

如果你的Map结构保持平坦,你可以添加Map作为附加访问器,并重构List访问器,以便它只是展平地图中的值。这样,您就不会将数据加倍,而只会形成不同的形状。

从实践的角度来看,将List标记为已弃用以阻止人们使用它可能是个好主意。通过这种方式,您可以在退役之前使用几个版本。

当您下次更新主要版本时,当有其他一些重大变化时,您可以“安全地”删除列表。