9

行き止まりになっているような気がします。私がそれを正しく理解していれば、デメテルの法則に従えば、オブジェクトを返すメソッドを作成することはできず、クライアントコードがそれを呼び出します。常にオブジェクトを返すファクトリパターンについて考えています。はい、オブジェクトを返すマッパークラスがあります。そして、コレクションはどうですか?

4

1 に答える 1

14

あなたはデメテルの法則を誤解し、有用性の点を超えてそれを適用しています:

より正式には、関数のデメテルの法則では、オブジェクトOのメソッドMは、次の種類のオブジェクトのメソッドのみを呼び出すことができる必要があります。

  • O自体
  • Mのパラメータ
  • M内で作成/インスタンス化されたオブジェクト
  • Oの直接コンポーネントオブジェクト
  • Mのスコープ内のOからアクセス可能なグローバル変数

特にファクトリはオブジェクトを作成するために使用され、ファクトリが作成するオブジェクトのタイプはパブリックインターフェイスの一部です。したがって、ファクトリによって作成されたオブジェクトのメソッドを呼び出すことは、上記によって許可されます。

于 2011-02-19T09:57:59.883 に答える