【发布时间】:2019-06-26 16:08:29
【问题描述】:
所以我正在研究适配器设计模式。我看到这样做的目的是允许客户端访问它们的接口不兼容的类的方法。
现在我一直在看this example。
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 但由于接口不兼容而无法使用。这是我的愚蠢问题……为什么 ShoppingPortalClient 不能这样做:
var adaptee = new VendorAdaptee();
【问题讨论】:
标签: design-patterns