【发布时间】:2017-07-19 11:21:19
【问题描述】:
我有几个看起来像这样的方法:
public void do(A a, B b);
public void do(A A, C c);
public void do(D d, A a);
public void do(D d, E e, X x, F f, Optional<A> a);
等等,大约有几十种方法基本相同,但参数不同。
现在我考虑使用构建器模式,让我可以使用如下功能:
withA(a).withB(b).withX(x).do();
但是,问题在于几十种方法中的一种会引发异常。如果我使用构建器模式,那么do() 将不得不抛出此异常,因此所有客户端都必须处理它。在我看来,这听起来是个问题。
我的问题:
- 这是个问题吗?
- 如果是,如何避免?
【问题讨论】:
-
为什么会抛出这个异常?是验证吗?您可以提取该验证a,并且只需要传递有效的参数...
-
当 do 中的计算结果与预期不符时,我抛出异常。
-
这意味着您在 setter 中执行业务逻辑。这违反了单一职责模式
-
This question 相关/有帮助。
-
@TimothyTruckle 是的,但现在无法改变。
标签: java oop exception-handling