zoukankan      html  css  js  c++  java
  • 设计模式 -(7)适配器模式(结构型)

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

    目标抽象角色(Target)

    定义客户要用的特定领域接口

    适配器(Adapter)

    调用另一个接口,作为一个转换器

    适配器(Adaptee)

    定义一个接口,Adapater需要介入

    客户端(Client)

    协同对象符合Adapater适配器

    插线板案例

    两种类型的适配器模式

    • 类适配器(采用继承的方法)
    • 对象适配器(采用对象组合的方式)




    Target
        interface Target
        {
            void MyOutPut();
        } 

    Adaptee
        interface Adaptee
        {
            void OutPut();
        } 

    ConcreteAdaptee1
        public class ConcreteAdaptee1 : Adaptee
        {
            public void OutPut()
            {
                Console.WriteLine("From ConcreteAdaptee");
            }
        } 
    ConcreteAdaptee2
        class ConcreteAdaptee2 : Adaptee
        {
            public void OutPut()
            {
                Console.WriteLine("From ConcreteAdaptee2");
            }
        } 
    Adapter
        class Adapter : Target
        {
            private Adaptee _adaptee; //必须要维护一个Adaptee类型的成员变量

            public Adapter(Adaptee adaptee)
            {
                this._adaptee = adaptee;
            }

            public void MyOutPut()
            {
                this._adaptee.OutPut();
            }
        } 
    Client

        class Client
        {
            static void Main(string[] args)
            {
                Target target = new Adapter(new ConcreteAdaptee1());
                target.MyOutPut();

                target = new Adapter(new ConcreteAdaptee2());
                target.MyOutPut();

                Console.Read();
            }
        } 


    分析





  • 相关阅读:
    webpack打包(2)
    webpack打包(1)
    angular(5自定义模块和ionic创建)
    angular(4)路由及其使用
    anjular(3 生命函数及请求)
    Angular(2)
    自学Angular(1)
    Typescript知识总结
    PLC数据采集与MES系统对接
    python格式化日期时间自动补0
  • 原文地址:https://www.cnblogs.com/tangge/p/5900327.html
Copyright © 2011-2022 走看看