首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为执行一个或多个集合操作的类命名

为执行一个或多个集合操作的类命名
EN

Software Engineering用户
提问于 2021-10-27 23:29:31
回答 2查看 85关注 0票数 1

我在设计一个课程

1-一组初始项目(一个简单的集合/列表)

2-1或更多筛选对象,这些对象接受初始项集并返回新集。每个过滤器对象可能返回一组不同的项,因此主类执行这些集合的结果并与其交集。然而,这些过滤器对象中的一些根据来自其他筛选器的集合的交集的结果集而不是初始集执行子集操作。

如果这个类的主要功能是通过执行基于给定集和一个或多个筛选器对象的交叉和子集操作来返回一个新集,那么我应该调用这个类吗?

过滤器类的部分接口如下所示:

代码语言:javascript
复制
constructor(ItemsSet set, options) : ItemsSet
getFilteredSet() : ItemsSet

对于我正在设计的课程:

代码语言:javascript
复制
constructor(ItemsSet mainSet, filters) : ItemsSet
getSet(): ItemsSet

我在想:

SubsetOfItems

SubsetOfSets

FiltersSetExecutor

ItemsSetFilterexecutor

我倾向于使用SubsetOfItems,但是这个类并不总是有一个过滤器来执行来自其他集合交集的结果集的子集。希望这是合理的。

换句话说,操作可以是相交的,子集的,交的和子集的.

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2021-10-28 00:45:53

你似乎在描述复合模式。您的类只是一个复合对象,它执行所有不同集合的交集。但是,在不了解用例的全部细节的情况下,我建议从filter方法而不是通过构造函数接受set。

例如,在Java中,它看起来像这样:

代码语言:javascript
复制
public interface Filter<T> {
  Set<T> filter(Set<T> xs);
}

public interface FirstFilter<T> implements Filter<T> {
  // ...
}

public interface SecondFilter<T> implements Filter<T> {
  // ...
}

public interface FilteringOnSubset<T> implements Filter<T> {
  // ...
}

public interface IntersectionCompositeFilter<T> implements Filter<T> {
  public IntersectionCompositeFilter(Filter<T>... filters) {
    // ...
  }
  // ...
}

public static void main(String args[]) {
  Filter<String> filter = new FilteringOnSubset<>(new IntersectionCompositeFilter<>(new FirstFilter<>(), new SecondFilter<>()));
  Set<String> xs = ...
  
  Set<String> filteredXs = filter.filter(xs)
票数 2
EN

Software Engineering用户

发布于 2021-10-28 11:46:58

从自然英语的角度来看,问题是执行过滤的对象被称为“过滤器”。但是,您已经使用这个词来引用执行每个筛选阶段的对象。

应用一系列过滤器的对象的明显名称应该是"FilterBatch“或"FilterPipeline”之类的东西。

但是,如果我正确地理解这个过滤器批处理对象实际上具有复杂的内部逻辑来应用每个阶段和确定每个阶段的输入和输出是如何连接的,那么用"FilterEngine“或"FilterMultiplex”来表示可能更合适。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/433098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档