设计模式-适配器模式-创新互联

abstract class Person
    {
        public string name;
        public Person(string _name)
        {
            name = _name;
        }
        public abstract void Say();
    }
    class EnglishPerson : Person
    {
        public EnglishPerson(string _name) : base(_name)
        {
        }

        public override void Say()
        {
            Console.WriteLine("i'm{0}",name);
        }
    }
        //被适配的对象
    class ChinesePerson : Person
    {
        public ChinesePerson(string _name) : base(_name)
        {
        }

        public override void Say()
        {
            Console.WriteLine("我是{0}", name);
        }
    }
    class JapanPerson : Person
    {
        public JapanPerson(string _name) : base(_name)
        {
        }

        public override void Say()
        {
            Console.WriteLine("私は{0}と申します", name);
        }
    }

        class TranslatorAdapter : Person
    {
        private ChinesePerson cp;
        public TranslatorAdapter(string _name) : base(_name)
        {
            cp = new ChinesePerson(name);
        }
        public override void Say()
        {
            cp.Say();
        }
    }

        //前端
        static void Main(string[] args)
        {
            Person p = new EnglishPerson("JOM");
            p.Say();

            Person p1 = new JapanPerson("アレクサンダー大");
            p1.Say();
            Console.ReadKey();

            //P1,P2来中国旅游,请了个中国翻译
            Console.WriteLine("P1,P2来中国旅游,请了个中国翻译");
            p = new TranslatorAdapter("JOM");
            p.Say();
            p1 = new TranslatorAdapter("アレクサンダー大");
            p1.Say();
            Console.ReadLine();
        }

总结:转换接口使不兼容的类可以一起工作,一般在软件开发后期阶段使用很多。
与代理模式差别在于
1、代理模式中被代理的类是不允许被客户端访问的,
代理类知识转达被代理类的行为意图,
设计时代理类和被代理是同一个接口。
假如被代理类可以直接被访问,那么被代理类和代理类最终都是执行的同一个方法。

创新互联建站基于成都重庆香港及美国等地区分布式IDC机房数据中心构建的电信大带宽,联通大带宽,移动大带宽,多线BGP大带宽租用,是为众多客户提供专业服务器托管报价,主机托管价格性价比高,为金融证券行业德阳机房托管,ai人工智能服务器托管提供bgp线路100M独享,G口带宽及机柜租用的专业成都idc公司。

2、适配器模式是为了实现:客户的某个行为意图希望转变成另外一种行为意图。
即转变为被适配角色的行为。
比如英文:i love you,中文:我爱你,
在中国老外说:i love you‘’,就需要适配器转成我爱你,而‘’我爱你‘’就是被适配的对象

使用场景:
老系统:add(param1,param2,param3)
新系统:add(param1,param2,param3,param4)
新系统调用老系统的add,新系统此时就就需要加适配类了。
设计模式-适配器模式

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


名称栏目:设计模式-适配器模式-创新互联
标题来源:http://abwzjs.com/article/dpeccg.html