値オブジェクトは、業に関するcarolina04のブックマーク (1)

  • 3分でわかる値オブジェクト

    "よくある"クラスの特徴を簡単にまとめます。 int型やDate型など、言語で用意された型を使用してフィールドが宣言されている getter/setterメソッドが実装されている このような一般的なクラスの一体何が問題なのでしょうか。 よくあるクラスの問題点 さきほど二つの特徴をあげましたが、よくあるクラスにはこれらに関連した大きな問題点があります。それは、業務アプリケーションを作り上げるために存在するクラスであるにも関わらず、「業務ルールに反した値や操作を許す構造になっている」ことです。実際のソースコードを見てみましょう。 コードで見てみる問題点 例として、先のクラスのポイント(point)というフィールドを考えることにします。仮に、「ポイントは0から1000までとすること」という業務ルールがあるとしましょう。しかし、Taskクラスにおけるポイントはint型で宣言されていますから、こんな

    3分でわかる値オブジェクト
    carolina04
    carolina04 2021/01/05
    値オブジェクトは、業務ルールをクラスとして表現することで、バグの混入を防ぐだけでなく仕様理解の助けにもなるという非常に便利な設計方式
  • 1