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();
            }
        } 


    分析





  • 相关阅读:
    markdown常用语法
    利用 js-xlsx 实现选择 Excel 文件在页面显示
    HTML中meta标签
    wxpy模块
    Python基础(3)
    Python基础(2)
    Python基础(1)
    Python之递归锁与互斥锁
    Python进程与线程
    Docker
  • 原文地址:https://www.cnblogs.com/tangge/p/5900327.html
Copyright © 2011-2022 走看看