将方法调用委托给同一接口的集合的接口实现的正确术语是什么?

Jes*_*sse 4 java

我有一个界面:

public interface Doer
{
    public void do(Object arg);
}
Run Code Online (Sandbox Code Playgroud)

我有一个实现,它保存一个列表Doers,并在每个上执行任何操作:

public class DoerCollectionThing
    implements Doer
{
    private List<Doer> doers....

    public void addDoer(Doer d)
    {
        doers.add(d);
    }

    public void do(Object arg)
    {
        for (Doer d : doers){
            d.do(arg);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

那么,我该怎么称呼DoerCollectionThing?是一个DoerAggregator吗?或许DoerCollectionDoer?你们都用这种东西做什么?

Gar*_*ryF 5

正确的名称是a Composite,因为您将一个接口的许多实现组合成一个对象.

  • 我认为*我可能会避免这种情况,因为"组合"这个词现在有点过载了.例如,设计可以使用组合而不是继承,而不会出现这种情况.换句话说,"组合物"通常可以是异质的和同质的.我完全同意它反映复合材料作为back2dos参考,但我认为它有点太接近一般的"组成"术语.只是个人偏好虽然:) (2认同)