添加参数对象而不是原始符号是一种很好的模式,用于遵守开放关闭原则。
让我说我有这个界面
public interface IBar{
void DoSomething(int id);
}
如果有一天我需要添加参数,我将不得不更改我的界面。 有了这个解决方案
public interface IBar{
void DoSomething(DoSomethingParameter parameters);
}
我可以在不触及界面的情况下添加任意数量的参数,并且我将能够使用新参数创建新的IBar实现。
这是反模式吗?
答案 0 :(得分:1)
当您想要将多个相关参数组合成有意义的表示时,最好将对象用作参数。
在我看来这样做对于原始类型,如整数,字符串......等我是多余的,如果它实际上不会导致包装/解包每次调用的开销,那么它将不会给你带来任何好处。
此外,您可以看到许多代表a Repository
的接口,其中总是有类似GetAuthor(int id)
的方法,用于通过各自的ID从数据库中获取元素。