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


    分析





  • 相关阅读:
    03-django模型(1)
    Django02 Django基础知识
    jquery
    Django01 web http 基础
    Python之协程
    Python之线程
    进程 操作
    CSS
    UVALive-3268 Jamie's Contact Groups (最大流,网络流建模)
    UVA-10806 Dijkstra, Dijkstra. (最小费用流,网络流建模)
  • 原文地址:https://www.cnblogs.com/tangge/p/5900327.html
Copyright © 2011-2022 走看看