考慮具有4個領域,一個構造函數和getter基本豆格式類:迫使類實例化規則
public class Foo {
private final String id;
private final Bar bar;
private final boolean invalid;
private final String errorMessage;
public Foo(String id, Bar bar, boolean invalid, String errorMessage) {
this.id = id;
this.bar = bar;
this.invalid = invalid;
this.errorMessage = errorMessage;
}
}
有一些,我想強加給類的用戶規則。
例如:
- id參數絕不能爲null或空
- 當酒吧非空的,無效的肯定是假的和的errorMessage必須爲空
- 時的errorMessage被非空,酒吧必須爲空
- 無效時是真實的,必須的errorMessage非空非空,和酒吧必須爲空
ŧ這些規則基本上轉化爲4種有效的Foo對象:
(aString,false,null,null),(aString,false,aBar,null),(aString,true,null,anErrorMessage)和(aString,false ,null,anErrorMessage)。
我該如何強制課程的用戶始終創建其中的4個?
[例外](https://docs.oracle。COM/JavaSE的/教程/本質/例外/)。 – Turing85
你的「*必須是*」是什麼意思:驗證/拒絕或強制分配? –
「必須是」的意思是「對象應該被實例化」。見上面的編輯。 – bez