設計の再利用パターン原理の7つの原則の合成

      重合の原則を多重化/多重化の原則の組み合わせによって合成された多重化を達成する代わりに、継承のオブジェクトの組み合わせを使用するように


      合成は、新しいオブジェクトが新しいオブジェクトの一部となるように、アソシエーション(合わせて重合を含む関係)は、いくつかの既存のオブジェクトによって使用されている原理的に多重化され、メソッドを多重化既存のオブジェクトの到達に委任することにより、新しいオブジェクト・コールと関数の目的。簡単に言うとは:多重化/高分子の関係(リレーションシップ)、以下の継承の組み合わせを使用しようとします。

       オブジェクト指向の設計では、2つの方法により、既存の設計と異なる環境に実装、すなわち再利用することができ、重合の間の組み合わせの関係やによって継承は、第一の組成物/重合は、より多くのシステムを作ることができ、組合せ/重合性を考慮すべきです柔軟性は、クラスとクラス間の結合を減らす、一つのクラス他のクラスの変化に比較的小さな影響が生じた。第二に、継承を検討する前に、継承を使用した場合、リヒターの置換原則の遵守の必要性、継承の有効利用が役立つだろう複雑さを軽減、問題の理解、および継承の乱用が、システムを構築し、維持することの難しさと複雑さを増すので、再利用に慎重な使用の継承が必要になります。

      カプセル化システムを破壊する多重継承継承によって多重化されるべき主な問題は、基本クラスに露出サブクラスう継承実装の詳細は、ベースクラスの内部の詳細サブクラスは、典型的には可視であるので基底クラスが変更された場合そのため、また多重「ホワイトボックス」として知られているこのマルチプレックスは、、その後、基本クラスから継承されたも変更しなければならなかった実装サブクラスは、実現するために来て静的で、変更は実行時に起こることができません、そこに十分な柔軟性がなく、継承が限られた状況で使用することができます。

      ここでは、多重化の原則の合成を理解するために例を与えます:

1      パブリック クラスA
 2      {
 3          公共 ボイド方法1()
 。4          {
 5              Console.WriteLineを(" I法" );
 6          }
 。7          公共 ボイド方法2()
 8。         {
 9。              Console.WriteLineを(" I法II " )。
 10          }
 11      }
 12は、 
13である     パブリック クラスB:
 14      {
 15  
16      }

 

         クラスAを増大させる必要があり、クラスAの二つの方法、クラスBは、単に「より少ないリソースでより多くの」私たちが最初に直接の後継と思うかもしれませんが、これらの2つのメソッドを呼び出す必要があり、そうにしているが、事業開発など、機能より複雑このようなコアと組み合わせ法3、クラスBとの接続なし、カップリング増加する、などの他の方法は、関連する原理と多重化され、我々は上に頼ることができ、重合会合法合成、結合低減、および保守性を向上させるためメンテナンスコストを削減します。

1      パブリック クラスA
 2      {
 3          公共 ボイド方法1()
 。4          {
 5              Console.WriteLineを(" I法" );
 6          }
 。7          公共 ボイド方法2()
 8。         {
 9。              Console.WriteLineを(" I法II " )。
 10          }
 11      }
 12は、 
13である     //は依存
14      パブリック クラスB
 15      {
 16         公共 ボイドMthod1(A A)
 17          {
 18である              (Console.WriteLineを" 呼び出し方法A " );
 19          }
 20      }
 21は 
22である     // 重合性
23である     パブリック クラスC
 24      {
 25          プライベートA A;
 26である 
27          公共 ボイドSETA(Aアル)
 28          {
 29              A = アル;
 30          }
 31である     }
 32   
33である     。// 合成
34     パブリック クラスD
 35      {
 36          公衆 A A = 新しいA();
37  
38      }

 

おすすめ

転載: www.cnblogs.com/yangda/p/11954137.html