【发布时间】:2015-08-28 11:37:40
【问题描述】:
拥有“外观方法”是否被认为是糟糕的设计(我想不出更好的术语)。示例:
public class MyService() {
public void doThis() {
// do something
}
public int doThat() {
// do something
}
public boolean isThisTrue(String str) {
// do something
}
// determine something by calling methods within the same class
public boolean shouldSomethingBeDone() {
int result = 0;
if (isThisTrue("foobar")) {
doThis();
result = doThat();
}
return result > 0;
}
}
我试图避免在我的一个调用服务的 Controller 类中包含太多逻辑。我能看到解决这个问题的唯一方法是创建一种方法,例如上面的方法。
当我尝试创建单元测试并模拟 shouldSomethingBeDone() 方法中的调用时,出现了困境。由于所有调用都是对同一类中的方法的调用,因此很难模拟它。
谢谢。
【问题讨论】:
-
不,这还不错,我也这样做,而且我没有任何问题。你可以做的是创建另一个类,但它是相同的,你添加创建另一个类以便能够调用它的方法。
-
不一定是糟糕的设计。但是,功能最紧密的类可能不会调用同一类的公共方法。
标签: java unit-testing oop design-patterns facade