更新:请在设计原则、优雅、意图表达的背景下阅读此问题,尤其是通过设计选择发送给其他程序员的“信号”。
我有一组对象的两个“视图”。一种是通过字符串值索引对象的字典/地图。另一个是按序数(排序整数)索引对象的字典/地图。没有对象的“主”集合本身可以作为对象数量的权威来源,但是两个字典都应该始终包含对所有对象的引用。
当一个新项目被添加到集合中时,一个引用被添加到两个字典中,然后需要进行一些受新对象总数影响的处理。
我应该使用什么作为权威来源来参考对象集的当前大小?似乎我所有的选择在一个维度上都存在缺陷。我可以始终如一地参考其中一本词典,但这将暗示该词典优于另一本。我可以添加第三个集合,一个简单的对象列表作为权威列表,但这会增加冗余。存储运行计数似乎最简单,但也增加了冗余,并且比动态引用集合的自跟踪计数更脆弱。
是否有其他选择可以让我避免选择较小的邪恶,或者我必须接受优雅的妥协?