ホームページ > Java > &#&チュートリアル > デメテルの法則 (LoD) を数秒で解説

デメテルの法則 (LoD) を数秒で解説

DDD
リリース: 2025-01-24 22:32:10
オリジナル
723 人が閲覧しました

デメテルの法則 (LoD): コードを疎結合に保つ

デメテルの法則 (LoD) は、コード内の結合を減らすことを目的とした設計ガイドラインです。 その基本原則はシンプルです。「見知らぬ人には話さず、身近な友人にのみ話してください。」

本質的に、クラスまたはモジュールは、そのオブジェクトが依存するオブジェクトとの対話を避け、依存するオブジェクトとのみ直接対話する必要があります。これにより、コードがよりシンプルになり、テストしやすくなり、相互接続が少なくなります。

Law of Demeter (LoD) Explained in  Seconds

アンチパターン (回避):

<code>// Tight coupling through nested calls
customerCity := order.GetCustomer().GetAddress().GetCity()
fmt.Printf("Customer lives in: %s\n", customerCity)</code>
ログイン後にコピー

この例は密結合を示しています。 OrderCustomer、または Address クラスを変更すると、このコードが壊れる可能性があります。

改善されたアプローチ:

<code>// Decoupled using a single method call
customerCity := order.GetCustomerCity()
fmt.Printf("Customer lives in: %s\n", customerCity)</code>
ログイン後にコピー

GetCustomerCity() メソッドは複雑さをカプセル化し、内部構造を隠して依存関係を減らします。

LoD の利点:

  • 結合の削減: 相互依存関係が少なくなり、コードの保守と変更が容易になります。
  • 可読性の向上: コードがより単純になり、理解しやすくなります。
  • 情報の非表示: 内部実装の詳細は外部コンポーネントから保護されます。
  • テストの簡略化: 複雑なモックの必要性を減らすことでテストを簡素化します。

実際に LoD を適用する:

  • データ転送オブジェクト (DTO) を使用してデータ フローを管理します。
  • ファサード パターンを利用して、複雑なサブシステムとの対話を簡素化します。
  • 連鎖メソッド呼び出しを単一の高レベルのメソッドにリファクタリングします。

さらなる探索:

ソフトウェア設計の原則について詳しく知りたいですか?これらの関連する概念を調べてください:

  • 依存性反転原則 (DIP)
  • Golang 依存関係の注入
  • インターフェース分離原則 (ISP)
  • それは必要ありません (YAGNI) 原則
  • リスコフ置換原理 (LSP)
  • シンプルであれ、愚かな (KISS) 原則
  • 同じことを繰り返さない(DRY)原則
  • 尋ねないで教えてくださいの原則

今後の投稿に関する最新情報については、LinkedIn、GitHub、Twitter/X でお問い合わせください。

以上がデメテルの法則 (LoD) を数秒で解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート