1

疎結合情報と密結合情報を知っています。しかし、私はいつどこで何時に使用するかを決めることができますか? 疎結合と密結合がいつ必要なのか理解できませんか?

見てください: http://www.dofactory.com/Patterns/PatternAdapter.aspx#_self1

アダプタークラスを見ると:


  /// 
  /// The 'Adapter' class
  /// 
  class Adapter : Target
  {
    private Adaptee _adaptee = new Adaptee();

    public override void Request()
    {
      // Possibly do some other work
      //  and then call SpecificRequest
      _adaptee.SpecificRequest();
    }
  }

上記の使用法は密結合のようです! 密結合は悪い使い方だと思います。ただし、アダプタ パターンは密結合で使用されます。密結合と疎結合が必要な場合

4

5 に答える 5

5

Gang Of Four パターンは、疎結合としてよく言及されるDependency Injectionの前に生まれたことを思い出してください。

したがって、あなたが示すアダプターパターンの例は、パターンがどのように機能するかを示すことであり、疎結合はあまり気にしません。

コードをテスト可能で置き換え可能にしたい場合は、疎結合を使用する必要があります。例:

class CustomerService
{
    private ICustomerRepository _customerRepository;
    public CustomerService(ICustomerRepository customerRepository)
    {
        _customerRepository = customerRepository;
    }
}

コンストラクター経由で注入するため、単体テストを行うためにcustomerRepository簡単にモックできます。ICustomerRepository

于 2012-10-11T18:23:27.287 に答える
2

一般に、疎結合を目指します。これは、可能な場合は抽象化を使用することを意味します。

アダプター パターンは、クラス (Adaptee) を適切な抽象化で簡単に置き換えることができない場合に役立ちます。

Adapter は、問題の Adaptee クラスのラッパーです。Adapter は抽象 Target クラスから派生し、呼び出しコードは Target に関してのみ処理する必要があるため、疎結合のままにすることができます。

于 2012-10-11T12:07:44.100 に答える
1

これは、それらの違いを理解するのに役立ちますが、緩く結合されたクラスが必要な場合は、アプリケーションの設計に大きく依存します。 オブジェクト指向パラダイムの緩い結合と密な結合の違いは何ですか?

于 2012-10-11T12:02:53.217 に答える
1

密結合と疎結合が必要な場合

常に疎結合の設計に努める必要があります。密結合を必要とするエッジケースや、密結合を含むプロジェクトを継承した可能性がありますが、テスト容易性を念頭に置いて設計および開発する必要があると思います。これは結合が低いことを意味します。私はまだ「疎結合」すぎるプロジェクトに取り組んだことはありませんが、確かに「密結合」のプロジェクトに取り組んでおり、後者は面白くありませんでした。

于 2012-10-11T12:23:38.090 に答える
0

製品コードの疎結合設計を使用することをお勧めします。これにより、依存コンポーネントとは独立してコードを簡単にテストできるようになり、コードが使用しているコンポーネントを簡単に置き換えることができます。

詳細な説明については、http://rangahc.blogspot.com/2015/05/difference-between-tight-coupling-and-loose-coupling.htmlをご覧ください。

于 2015-05-27T12:53:18.397 に答える