SortedSet在指定UML集合框架图中的位置咨询
关于SortedSet在UML集合框架中的定位分析
你的思路存在核心语义冲突,不太合理,原因如下:
- Bag的核心特性是允许重复元素,而Set(包括SortedSet)的核心是不允许重复元素。如果让SortedSet继承Bag的实现类SetBag,会导致SortedSet继承了Bag允许重复的特性,这和它的Set本质矛盾。
- 正确的逻辑应该遵循接口层级的递进关系:
- 先定义
Set作为Bag的子接口,重写Bag中添加元素的方法,强制保证元素唯一性(毕竟Set就是一种不允许重复的特殊Bag)。 - 让
SortedSet继承Set接口,同时实现升序遍历、对数时间查找的特性。
- 先定义
- 如果原UML框架里已经存在Set类,那直接让SortedSet继承Set即可,完全不需要绕到Bag的实现分支里。
总结一下:SortedSet是Set的特殊版本,不是Bag的特殊版本,得从Set这条逻辑线延伸,而非Bag的实现分支。
内容的提问来源于stack exchange,提问作者python_learner10
相关产品推荐
相关产品推荐

