私は既に答えを知っているかもしれないが、それを明確にするように頼んだことがあると思う。Java - セッターの値のバリデーション
私は、プライベート変数、ゲッタ、セッタを持つ単純なPOJOを持っています。
これらの中には、初期化時に特定の文字列を使用できるようにする文字列変数があります。
私の質問は簡単です - この検証はPOJOに入れてください - おそらく設定者の1人にしても、設定者が呼び出される前に別の場所でこの検証を行うべきですか?
次の例では、唯一の「フレッド」やダフト何かの誰かの種類あれば値がgzip
またはcompress
private String compressionType = null;
public void setCompressionType(String compressionType) {
if(! (compressionType.equals("gzip")) || (compressionType.equals("compress")))
{
compressionType = "gzip"; //a chosen default
}
this.compressionType = compressionType;
}
効果的にデフォルト値を設定できるようにすべきです。
私が働くところでは、このようなことが頻繁に起こるので、ここで受け入れられますが、私はそれがすべきかどうかはわかりません。
これらの2つの型だけを許可するには 'enum'を使用し、enumはパラメータとして使用します。 – SomeJavaGuy
enumを使ってあなたがしたいことをする –
誰かが外部のバリデータを好む、ゲッターでの検証のような誰かが、デコレータパターンでそれをする人。あなた次第です。 – ByeBye