zoukankan      html  css  js  c++  java
  • c#真正的适配器模式

    这个栗子是真正意思上的适配器模型;堪称完美

    直接上代码;

    当前接口,无法满足需求(无法通过新增实现来完成拓展,又想调用新的接口,来满足需求;

    来满足新旧接口不一致,(当前,接口,新旧不一致的情况)或者叫不一致的方法;达到代码重用的目的;

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication26
    {
        public interface IJapanSocket
        {
            void Charge(int a,int b);
        }
        //它不能附加我丰富的想想和情感,所以,不能创造一种东西;
        //了解自己的特性 然后寻找一种媒介 借助这个媒介而让自己产生,产出更大的价值或各种产物;
    
    
        public class JapanSocket:IJapanSocket
        {
            public void Charge(int a,int b)
            {
                Console.WriteLine("在日本进行各种充电滴呀;输出电压...{0}",a+b);
            }
        }
    
        public interface IChineseSocket
        {
            void Charge(int a ,int b, int c);
        }
    
        public class ChineseSocket : IChineseSocket
        {
            public void Charge(int a ,int b,int c)
            {
                Console.WriteLine("利用日本插口+适配,打到我们的充电220v电气的目的.........当前输出电压{0}",a+b+c);
            }
        }
    
    
        //适配器模式,要实现旧的接口,然后实现性的新接口滴呀;
        //在不修改原有方法的
        //那就基于我们事件编程,效果很好滴呀;
        public class Adapter : IJapanSocket
        {
            //新的接口;
            public IChineseSocket ChineseSocket { get; internal set; }
    
            private Adapter() { } //不允许没事初始化数据,就去使用我们的类滴呀;
    
            public int AdataperQutity { get; private set; }
    
            public Adapter(IChineseSocket chineseSocket, int adataperQutity)
            {
                ChineseSocket = chineseSocket;
                AdataperQutity = adataperQutity; //适配类提供的量
            }
    
            //旧的接口,实现性的接口;
            public void Charge(int a,int b)
            {
                ChineseSocket.Charge(a,b,AdataperQutity);
            }
        }
    
        public class Hotel
        {
    
            public void DoSomething()
            {
                ////这样就是我们的 常规接口模式;
                //IJapanSocket socket = new JapanSocket();
                //socket.Charge();
    
                //这样才到我我们正在适配的目的
    
                ChineseSocket chinese = new ChineseSocket();
    
                Adapter adapter = new Adapter(chinese,110); 
    
                IJapanSocket japan = adapter;
    
                japan.Charge(55,55);
    
                //掉的日本的接口,去是中国的实现;
    
                //这样就型号才能了我们的适配器模式;
    
                //我们掉的japan的 方法,去是一种新额实现滴呀;
    
                //这样的做法很酸爽滴呀;
    
            }
    
    
        }
    
        class Program
        {
            static void Main(string[] args)
            {
    
                Hotel h = new Hotel();
                h.DoSomething();
    
                Console.ReadLine();
            }
        }
    }
  • 相关阅读:
    08day 操作命令以及目录结构
    换工作
    json转为字典
    快速排序
    冒泡排序
    python函数-生成器
    关键字global
    函数的定义和参数调用
    count()函数与center()函数
    python字符串常用函数:strip()
  • 原文地址:https://www.cnblogs.com/mc67/p/7757837.html
Copyright © 2011-2022 走看看