我在哪里可以找到一个好的适配器模式实现,并且有C#的好例子?
我将为您提供与维基百科示例类似的内容...
假设您需要为某个库提供一个 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>),但是您将其包装在适配器中,以便使其满足不同的接口。
这是一个接口转换模式。数据和对象工厂:适配器模式。解释、UML、示例源代码——您还可以购买他们的其他设计模式的源代码。