如何用原始参数来尊重开/关原理?

时间:2013-11-05 12:30:22

标签: design-patterns open-closed-principle

添加参数对象而不是原始符号是一种很好的模式,用于遵守开放关闭原则。

让我说我有这个界面

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

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

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

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

这是反模式吗?

1 个答案:

答案 0 :(得分:1)

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

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

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