@little_hand_s @j5ik2o @nrslib @ababupdownba 難しいですねw。 設計(モジュール構造)の観点からは、 アプリケーション層は機能単位(登録、更新、参照など) ドメイン層は値の種類(型)単位… https://t.co/qJ6z7Xs2l3
@little_hand_s @j5ik2o @nrslib @ababupdownba 難しいですねw。 設計(モジュール構造)の観点からは、 アプリケーション層は機能単位(登録、更新、参照など) ドメイン層は値の種類(型)単位… https://t.co/qJ6z7Xs2l3
"よくある"クラスの特徴を簡単にまとめます。 int型やDate型など、言語で用意された型を使用してフィールドが宣言されている getter/setterメソッドが実装されている このような一般的なクラスの一体何が問題なのでしょうか。 よくあるクラスの問題点 さきほど二つの特徴をあげましたが、よくあるクラスにはこれらに関連した大きな問題点があります。それは、業務アプリケーションを作り上げるために存在するクラスであるにも関わらず、「業務ルールに反した値や操作を許す構造になっている」ことです。実際のソースコードを見てみましょう。 コードで見てみる問題点 例として、先のクラスのポイント(point)というフィールドを考えることにします。仮に、「ポイントは0から1000までとすること」という業務ルールがあるとしましょう。しかし、Taskクラスにおけるポイントはint型で宣言されていますから、こんな
追記:2018年2月16日 Effective Java 3rd Edition を踏まえて内容をアップデートした記事を書きました。 こちらをご覧ください。 www.thekingsmuseum.info オブジェクトを生成するため、public コンストラクタの代わりに static ファクトリーメソッドを提供するべき。 static ファクトリーメソッドとはクラスのインスタンスを返す単なる static メソッド。GoF のデザインパターンで議論される「ファクトリーメソッド」とは異なるので注意が必要。 例えば、Java の Boolean で実装されている static ファクトリーメソッドは以下のようになっている。 public static Boolean valueOf (boolean b) { return b ? Boolean.TRUE : Boolean.FALSE;
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く