在下面的適配器設計模式示例代碼中,爲什麼引入一個新類而不是在客戶端使用多個接口?適配器設計模式的需求是什麼?
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?
- 在哪種情況下我們需要適配器類?
- 爲什麼不是簡單的繼承一個需要的類,創建這個模式來訪問另一個類方法?
感謝您的示例。它提供了一個更好的圖片.. – user1357872