1

为了尊重打开关闭原则,添加参数对象而不是原语是一种很好的模式吗?

假设我有这个界面

public interface IBar{
  void DoSomething(int id);
}

如果有一天我需要添加一个参数,我将不得不更改我的界面。有了这个解决方案

public interface IBar{
  void DoSomething(DoSomethingParameter parameters);
}

我可以在不接触界面的情况下添加任意数量的参数,并且我将能够使用新参数创建 IBar 的新实现。

是反模式吗?

4

1 回答 1

1

当您想要将多个相关参数组合成有意义的表示时,使用对象作为参数是一个好主意。

在我看来,对于整数、字符串等原始类型这样做是多余的,并且不会给您带来任何好处,如果它实际上并没有导致每次调用的包装/解包开销。

您还可以看到许多代表 a 的接口,Repository其中总是有类似的方法GetAuthor(int id)用于通过它们各自的 id 从数据库中获取元素。

于 2013-11-05T13:18:33.680 回答