在哪里可以找到一个好的适配器模式实现,其中包含C#语言的好例子?

4

我在哪里可以找到一个好的适配器模式实现,并且有C#的好例子?

3个回答

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>),但是您将其包装在适配器中,以便使其满足不同的接口。


1

在DimeCasts.net上有一个很棒的播客节目,关于这个这里

这是一个专门讲解适配器模式的10分钟视频,他们还发布了源代码,所以你也可以查看它。


1

这是一个接口转换模式。数据和对象工厂:适配器模式。解释、UML、示例源代码——您还可以购买他们的其他设计模式的源代码。


负面投票者是否愿意解释一下原因? - JP Alioto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接