【发布时间】:2016-08-28 07:06:24
【问题描述】:
在下面的适配器设计模式示例代码中,为什么引入了一个新类而不是在客户端使用多个接口?
interface ITarget
{
List<string> GetProducts();
}
public class VendorAdaptee
{
public List<string> GetListOfProducts()
{
List<string> products = new List<string>();
products.Add("Gaming Consoles");
products.Add("Television");
products.Add("Books");
products.Add("Musical Instruments");
return products;
}
}
class VendorAdapter:ITarget
{
public List<string> GetProducts()
{
VendorAdaptee adaptee = new VendorAdaptee();
return adaptee.GetListOfProducts();
}
}
class ShoppingPortalClient
{
static void Main(string[] args)
{
ITarget adapter = new VendorAdapter();
foreach (string product in adapter.GetProducts())
{
Console.WriteLine(product);
}
Console.ReadLine();
}
}
我有以下与上述代码相关的查询。
- 如果 ShoppingPortalClient 直接继承 VendorAdaptee 会怎样?
- 在哪种情况下我们需要适配器类?
- 为什么不简单继承所需的类,而是创建这种模式来访问另一个类方法?
【问题讨论】:
标签: c# asp.net .net design-patterns adapter