我应该如何命名这个集合类?

时间:2015-04-10 18:29:49

标签: naming-conventions smalltalk

想象一下Collection的子类,它知道select块和collect块。此类的一个实例包装另一个collection并动态地将这些块应用于它。因此,例如,#do:实现为

do: aBlock
    collection
        select: [:element | select value: element]
        thenDo: [:element | | v |
            v := collect value: element.
            aBlock value: v]]

所以,问题是我应该如何命名这个课程?我把它叫做WrappedCollection但是这个名字含糊不清,此外,这个东西必须已经存在并且有一个名字。

顺便说一句,这与Subclassing Stream非常相似,只是我的不是Stream

2 个答案:

答案 0 :(得分:1)

selectcollect块对我来说就像条件标准一样。所以也许你可以命名类ConditionalCollection,暗示集合会根据正在应用的条件而改变。

我刚才有了另一个想法:FilteredCollection

答案 1 :(得分:1)

我们最终决定使用DerivedCollection。鉴于这些对象代表从其他来源获得的集合,就像意图而不是扩展所定义的数学集一样,我们选择了一个不透露其名称的名称内部代表。

BTW,DerivedCollection对于过滤(#select:)和转换(#collect:)我们使用StoredArray实例表示的大量数据特别有用将其元素存储在磁盘上的Array