JavaBeansの記述ルールは、
- 直列化可能である(java.io.Serializableを実装している)
- クラスはpublicでパッケージに所属する
- publicで引数のないコンストラクタを持つ
- フィールドはカプセル化(private)されている
- 命名規則に従ったgetter/setterを持つ
とされていますが、
例えば、Beansクラスに渡すデータ群があるタイミングで全て判り、その直後にBeansクラスのプロパティに格納したデータがそのあとも変更されない(させたくない)と判明してる場合でもsetterの記述は必要でしょうか。
つまり、setterを記述せず、代わりにコンストラクタでデータを纏めて渡し、必要な引数分渡さないと動かないコンストラクタに代入操作を限定することで、インスタンスされた時点でそのオブジェクトには全てのデータが入っていることが明確になります。また、setterを定義しないのであれば③の引数無しのコンストラクタを定義する意義もなくなります。
ルールと言ってしまえばそれまでですが、Beansクラスにsetterを必要としないケースでも、コードの堅牢性や可読性を放棄してまで引数なしコンストラクタと各プロパティのsetterを記述する意味はあるのでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/04 00:05
2018/07/04 16:17