zoukankan      html  css  js  c++  java
  • C#设计模式(7)——适配器模式

    一、概述

    将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。

    二、模型

    三、代码实现

    using System;
    
    /// 这里以插座和插头的例子来诠释适配器模式
    /// 现在我们买的电器插头是2个孔,但是我们买的插座只有3个孔的
    /// 这是我们想把电器插在插座上的话就需要一个电适配器
    namespace 设计模式之适配器模式
    {
        /// <summary>
        /// 客户端,客户想要把2个孔的插头 转变成三个孔的插头,这个转变交给适配器就好
        /// 既然适配器需要完成这个功能,所以它必须同时具体2个孔插头和三个孔插头的特征
        /// </summary>
        class Client
        {
            static void Main(string[] args)
            {
                // 现在客户端可以通过电适配要使用2个孔的插头了
                IThreeHole threehole = new PowerAdapter();
                threehole.Request();
                Console.ReadLine();
            }
        }
    
        /// <summary>
        /// 三个孔的插头,也就是适配器模式中的目标角色
        /// </summary>
        public interface IThreeHole
        {
            void Request();
        }
    
        /// <summary>
        /// 两个孔的插头,源角色——需要适配的类
        /// </summary>
        public abstract class TwoHole
        {
            public void SpecificRequest()
            {
                Console.WriteLine("我是两个孔的插头");
            }
        }
    
        /// <summary>
        /// 适配器类,接口要放在类的后面
        /// 适配器类提供了三个孔插头的行为,但其本质是调用两个孔插头的方法
        /// </summary>
        public class PowerAdapter:TwoHole,IThreeHole
        {
            /// <summary>
            /// 实现三个孔插头接口方法
            /// </summary>
            public void Request()
            {
                // 调用两个孔插头方法
                this.SpecificRequest();
            }
        }
    }
  • 相关阅读:
    读《大道至简—编程的精义》有感
    c++ 指针做为参数和返回值
    c++ 函数
    c++ 分配与释放内存
    c++ 以多维数组的形式访问动态内存
    c++ 动态数组,指针与动态内存分配
    c++ 指针访问数组
    c++ 常量指针
    c++ 指针
    c++ 字符串转换
  • 原文地址:https://www.cnblogs.com/zyj649261718/p/6292242.html
Copyright © 2011-2022 走看看