将策略实例(接口实现)传递给方法是否是一个好习惯,以便该方法可以根据策略实例类型返回特定类型的对象?
例如,
我有一个方法getData(String x, String y)
,但这需要返回type A
或type B
的对象。这种方法中的大部分内容都很常见,因此我想重用一种方法。
我正在考虑传递额外的参数TypeInterface t
,并在方法中检查此实例的类型,并构建A
或B
的对象。
答案 0 :(得分:2)
这种方法中的大部分内容都很常见,因此我在想 重用一种方法。
通过引入除类之外的其他参数,您将使客户端API更加冗长和复杂 作为替代方案,您可以声明两个不同的公共方法,它们的命名和实现方式不同,您可以依赖常用处理的公共私有方法。
例如:
假设X
和A
实施的界面B
。
public X getA(String x, String y){
X a = new A();
// specificities for A ...
...
// common processing
commonForGet(a);
return a;
}
public X getB(String x, String y){
X b = new B();
// specificities for B ...
...
// common processing
commonForGet(b);
return b;
}
private void commonForGet(X x){
...
}