2009-05-01 3 views

答えて

1

このhere

それは、Adapterパターンの10分間のビデオ・ソリーで、あなたにもそれを見ることができるように、彼らはまた、ソースコードを公開に関するDimeCasts.netに大きなポッドキャストがあります。

1

インターフェイスの変換パターンです。データ&オブジェクトファクトリ:Adapter Pattern。説明、UML、ソースの例 - パターンで追加のソースコードを購入することもできます。

+0

なぜ否定的な有権者は、その理由を説明しますか? –

3

(私はここではウィキペディアのサンプルのようなもので投げるつもりだ...)

は、次のシグネチャを使用して、いくつかのライブラリのIDeque<T>インタフェースを提供する必要があったと言う:

public interface IDeque<T> 
{ 
    void PushFront(T element); 
    T PopFront(); 
    void PushBack(T element); 
    T PopBack(); 
    int Count { get; } 
} 

BCL-LinkedList <T>のクラスを使用してこれを簡単に実装できますが、ここで必要な特定のインターフェイスは一致しません。このインターフェイスを実装するには、互換性のない他のインターフェイスを使用して、必要なインターフェイスを満たすクラスであるアダプタを用意する必要があります。このようなものになります。この場合

public class Deque<T> : IDeque<T> 
{ 
    LinkedList<T> list = new LinkedList<T>(); 
    public void PushFront(T element) 
    { 
     list.AddFirst(element); 
    } 

    public T PopFront() 
    { 
     T result = list.First.Value; 
     list.RemoveFirst(); 
     return result; 
    } 
    // ... Fill in the rest... 

を、あなただけの既存のクラス(LinkedListの<T>)を使用しているが、あなたはそれが別のインターフェイスを満たすようにするためにアダプタでラップしています。

関連する問題