zoukankan      html  css  js  c++  java
  • C#设计模式:适配器模式(Adapter Pattern)

    一,Adapter适配器模式是将两个不兼容的类组合在一起使用,如下例子

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace _6.适配器模式
    {
        //保留现有类所提供的服务,向客户提供接口,以满足客户的期望。
        class Program
        {
            static void Main(string[] args)
            {
                //正常的接口实现方法
                ISpeak ispeak = new Chinese();
                ispeak.Say();
    
                //第一种:Adapter适配器模式实现方法
                EnglishAdapter enaAdapter = new EnglishAdapter();
                enaAdapter.Say();
    
                //第二种:Adapter适配器模式实现方法
                ISpeak ispeak2 = new JapanAdapter();
                ispeak2.Say();
                Console.ReadKey();
            }
        }
        //抽象接口
        public interface ISpeak
        {
            void Say();
        }
    
        //接口具体实现依赖于抽象接口
        public class Chinese : ISpeak
        {
            public void Say()
            {
                Console.WriteLine("中文");
            }
        }
    
        //第一种:Adapter适配器模式是将两个不兼容的类组合在一起使用,接口具体实现依赖于抽象接口
        public class EnglishAdapter : ISpeak
        {
            private English english = new English();
    
            public void Say()
            {
                this.english.SayEnglish();
            }
        }
        public class English
        {
            public void SayEnglish()
            {
                Console.WriteLine("英文");
            }
        }
    
        //第二种:Adapter适配器模式中间类继承实现
        public class JapanAdapter : Japan, ISpeak
        {
            public void Say()
            {
                SayJapan();
            }
        }
        public class Japan
        {
            public void SayJapan()
            {
                Console.WriteLine("日文");
            }
        }
    }

    综上:

    1》适配器模式是通过一个类的接口转换成客户希望的另外一个接口,使原本由于接口不兼容而不能一起工作的那些类可以一起工作。

    2》适配器模式有两种实现方式:一是继承实现,二是直接在适配器调用需要适配的类接口,从而实现客户端可以调用到需要适配的类接口

    适配器的使用场景:

    一,当适用一个已存在的类,而它的接口不符合所要求的情况;

    二,想要创建一个可以复用的类,该类可以与原接口的类协调工作;

    三,如:在当前系统中,我们存在一个公共的酒店接口interface,返回的数据类型格式已经确定,而此时,我们添加新的酒店,并且要实现该接口,但是新酒店的数据格式不一致,这时怎么办?我们就需要用到适配器了,我们通过适配器将数据格式转换成一致,然后就可以实现相同的接口。

  • 相关阅读:
    topcoder srm 633 div1
    HDU 4997 Biconnected (状态压缩DP)
    HDU 5013 City Tour
    BZOJ 3672 [Noi2014]购票 (熟练剖分+凸壳维护)
    BZOJ 1488: [HNOI2009]图的同构 polay
    BZOJ 1565 植物大战僵尸(最大权闭合图)
    iOS加载程序视图的方式
    内存管理2(主讲MRR)
    内存管理1
    排序算法之希尔排序
  • 原文地址:https://www.cnblogs.com/May-day/p/6544221.html
Copyright © 2011-2022 走看看