在哪里可以找到适配器模式的良好实现,并在C#中提供了很好的示例?

时间:2009-05-01 17:03:21

标签: c# design-patterns

在哪里可以找到Adapter Patterns的良好实现以及C#中的好例子?

3 个答案:

答案 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&lt; T&gt;中的类轻松实现此功能,但此处所需的特定接口将不匹配。为了实现此接口,您必须提供一个适配器 - 一个使用其他非兼容接口来满足所需接口的类。这看起来像是:

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&lt; T&gt;),但是您将它包装在适配器中以使其实现不同的接口。

答案 1 :(得分:1)

有关此here

的有关DimeCasts.net的精彩播客

这是适配器模式上的10分钟视频,他们还发布了源代码,以便您也可以查看它。

答案 2 :(得分:1)

这是一种界面转换模式。数据&amp;对象工厂:Adapter Pattern。解释,UML,示例源 - 您还可以在其模式上购买其他源代码。