デメテルの法則とは
デメテルの法則(Law of Demeter)は、オブジェクト指向プログラミングにおけるソフトウェアデザインの原則の一つです。この法則は、オブジェクト間の結合を緩やかにすることを目的としています。
デメテルの法則は、次のように表現されます。
「モジュールは、他のモジュールに直接の依存を持たないようにすべきである。」
より具体的には、以下のような原則に基づいています。
- メソッドは、自身のクラス、引数として渡されたオブジェクト、メソッドで生成またはインスタンス化されたオブジェクト、その属性にのみメッセージを送信するべきです。メソッドがこれら以外のオブジェクトにメッセージを送信する場合、それはそのオブジェクトとの結合を強めることになります。
- メソッドは、引数として渡されたオブジェクトのメソッドのみを呼び出すべきであり、そのオブジェクトの属性には直接アクセスすべきではありません。
- メソッドは、自身のクラスに属する属性やメソッドにのみアクセスすべきです。他のオブジェクトの属性やメソッドに直接アクセスすることは避けるべきです。
まとめ
デメテルの法則に従うことで、オブジェクト間の結合を緩やかにし、コードの保守性や拡張性を向上させることができます。