“适配器模式”的应用

Adapter 模式的工作原理

适配器模式(Adapter Pattern) :将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。



适配器模式UML 类图如下:


适配器模式包含如下角色:

Target: 目标抽象类
Adapter:适配器类
Adaptee:适配者类


应用实例:

用 Adapter 模式模拟一个厨师不断提升自己的过程
要求:一个人最初是一个面点师,后来他学习了川菜,又成了川菜师。以适配器模式为进行系统设计。

1.MiandianShi类

class MiandianShi
    {
        public void CookMiandian()
        {
            Console.WriteLine("能烹饪面点");
        }
    }

2.ChuancaiShi类

 class ChuancaiShi
    {
        public void CookChuancai()
        {
            Console.WriteLine("能烹饪川菜");
        }
    }

3.CookAdapter类

class CookAdapter:Cookoperation  
    {
        private MiandianShi m;
        private ChuancaiShi c;

        public CookAdapter()
        {
            m = new MiandianShi();
            c = new ChuancaiShi();
        }

        public void Miandian()
        {
            m.CookMiandian();   
        }
        public void Chuancai()
        {
            c.CookChuancai();
        }
    }

4.Cookoperation类

  interface Cookoperation
    {
        void Miandian();
        void Chuancai();
    }

5. 辅助文件App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="adapter" value="AdapterSample.CookAdapter"/>
  </appSettings>
</configuration>

6.客户端测试类Client

 class Client
    {
        static void Main(string[] args)
        {
           //针对抽象目标接口编程
            Cookoperation cook;
           //读取配置文件
            string adapterType = ConfigurationManager.AppSettings["adapter"];
            //反射生成对象
            cook = (Cookoperation)Assembly.Load("AdapterSample").CreateInstance(adapterType);

            cook.Miandian(); 
            cook.Chuancai();
            Console.Read();
               
        }
    }

运行结果:






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值