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,返回的数据类型格式已经确定,而此时,我们添加新的酒店,并且要实现该接口,但是新酒店的数据格式不一致,这时怎么办?我们就需要用到适配器了,我们通过适配器将数据格式转换成一致,然后就可以实现相同的接口。

  • 相关阅读:
    POJ1486 Sorting Slides 二分图or贪心
    POJ2060 Taxi Cab Scheme 最小路径覆盖
    POJ3083 Children of the Candy Corn 解题报告
    以前的文章
    POJ2449 Remmarguts' Date K短路经典题
    这一年的acm路
    POJ3014 Asteroids 最小点覆盖
    POJ2594 Treasure Exploration 最小路径覆盖
    POJ3009 Curling 2.0 解题报告
    POJ2226 Muddy Fields 最小点集覆盖
  • 原文地址:https://www.cnblogs.com/May-day/p/6544221.html
Copyright © 2011-2022 走看看