在哪里可以找到Adapter Patterns的良好实现以及C#中的好例子?
答案 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,示例源 - 您还可以在其模式上购买其他源代码。