1.现在有多个厂家 的SDK想写一个适配器,同一时刻只使用一家的SDK,
namespace Adapter_DesignPattern
{
using System;
class Target
{
public virtual void Request()
{
Console.WriteLine("Target: general request!");
}
}
class Adaptee
{
public void SpecialRequest()
{
Console.WriteLine("Adaptee: special request!");
}
}
class Adapter : Target
{
//在这里创建不同厂家的类对象吗?
假如是,在调用时就会调用全部厂家的处理函数 但同一时刻只能使用一家SDK private Adaptee adaptee = new Adaptee();
public override void Request()
{
adaptee.SpecialRequest();
}
}
class Client
{
public static void Main(String[] args)
{
Target target = new Target();
target.Request();
target = new Adapter(); //使用适配器后,客户端通过调用Target对象
//可以调用Adaptee
target.Request();
Console.Read();
}
}
}
解决方案
50
抽象类 适配器抽象抽象
厂家1:适配器抽象对象
厂家2:适配器抽象对象
适配器抽象 适配器=new 厂家1();
当然愿意写个简单工厂也行,不过现在更多是ioc依赖配置文件注入,毕竟配置文本是能运行期修改滴
厂家1:适配器抽象对象
厂家2:适配器抽象对象
适配器抽象 适配器=new 厂家1();
当然愿意写个简单工厂也行,不过现在更多是ioc依赖配置文件注入,毕竟配置文本是能运行期修改滴