Data Class
兆候と症状
データクラスは、フィールドとそれらへのアクセサメソッド(getter/setter)のみを含むクラスを指します。これらは、他のクラスで使用される単なるデータのコンテナです。これらのクラスには追加機能は含まれておらず、所有するデータを独立して操作することはできません。
問題の理由
新しく作成されたクラスに含まれるパブリックフィールドの数が少ないことは普通のことです(getter/setterが少数の場合もあります)。しかし、オブジェクトの真の力は、オブジェクト内のデータに動作タイプや操作を含めることができることです。
対処
- クラスにパブリックフィールドが含まれる場合は、「Encapsulate Field」を使用して直接アクセスできないようにし、getter/setterを介してのみデータにアクセスできるようにしましょう。
- コレクション(配列など)に格納されているデータには、「Encapsulate Collection」を使用します。
- データクラスを使用しているクライアントコードを確認します。その中に、データクラス自体に配置されるべき機能があった場合、「Move Method」と「Extract Method」を使って、その機能をデータクラスに移行します。
よく考え抜かれたメソッドでクラスがいっぱいになったら、クラスデータへの過度に広範なアクセスを可能にするデータアクセスの古いメソッドを削除することができます。これには、「Remove Setting Method」と「Hide Method」が役立つ場合があります。
効果
- コードが理解しやすくなり、構成が改善されます。特定のデータに対する操作は、コード全体で無計画に行われるのではなく、単一の場所に収集されるようになりますた。
- クライアントコードの重複を見つけるのに役立ちます。