3
作畫的場景,考慮以下邏輯省略-服務伐木應該有多深?
public class Service {
private Validator validator;
public void submit(Foo foo) {
if (!validator.isValid(foo)) {
log.warn("invalid foo");
} ...
}
}
public interface Validator {
boolean isValid(Foo foo);
}
的問題是,只有的Validor
本身知道原因爲什麼驗證會失敗。我看到只有兩個可行的方法來調整原因。無論是Validator
- 記錄失敗的條件本身
- 返回包含的String 原因和布爾的IsValid一個複雜的對象。
前者是好的,但將離開Service
無能是否實際執行記錄,而後者引入了惱人的redudancy和更復雜的應用。
哪個更喜歡,還是有更好的方法?
的見解的答覆。特別是,服務*是否需要*傳遞一個原因。 –