适配器模式–适配多个不知道怎么写

.Net技术 码拜 8年前 (2016-03-02) 1020次浏览
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依赖配置文件注入,毕竟配置文本是能运行期修改滴

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明适配器模式–适配多个不知道怎么写
喜欢 (0)
[1034331897@qq.com]
分享 (0)