zoukankan      html  css  js  c++  java
  • 设计模式(七)——适配器模式

    适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以无间合作。         

    这个模式可以创建适配器进行接口转换,让不兼容的接口变成兼容。

    这个模式主要有四个部分:

    Client:客户

    Target:目标接口

    Adapter:适配器

    Adaptee:被适配者

    例子:假设有一个鸭子类,还有一个火鸡类,想让天鹅完成火鸡做的事情,这时候我们就需要一个鸭子适配器.

    鸭子类:

    public interface Duck
        {
            void Quack();
            void Fly();
        }
    
        public class MallardDuck : Duck
        {
            public void Quack()
            {
                Debug.WriteLine("Quack");
            }
            public void Fly()
            {
                Debug.WriteLine("Fly");
            }
        }

    火鸡类:

      public interface TurKey
        {
            void Gobble();
            void Fly();
        }
    
        public class WildTurKey : TurKey
        {
            public void Gobble()
            {
                Debug.WriteLine("Gobble gobble");
            }
    
            public void Fly()
            {
                Debug.WriteLine("I am Flying Short Distance");
            }
        }

    鸭子对象适配器 (采用包含的方式):

     public class TurKeyAdapter : Duck
        {
            TurKey turKey;
            public TurKeyAdapter(TurKey turKey)
            {
                this.turKey = turKey;
            }
    
            public void Quack()
            {
                turKey.Gobble();
            }
            public void Fly()
            {
                turKey.Fly();
            }
        }

     鸭子的类适配器(类适配器采用多重继承的方式):

     public class TurKeyAdapter : WildTurKey, Duck
        {
            public void Quack()
            {
                this.Gobble();
            }
            public new void Fly()
            {
                base.Fly();
            }
        }
  • 相关阅读:
    ajax写用户注册
    PHP——explode的应用(获取字符串,拆为下拉列表)
    PHP 语句和时间函数
    PHP 文件上传
    PHP 文件操作代码
    PHP 弹窗 源代码 css Jquery.js
    PHP Jquery 代码操作 内容 属性 样式 事件 Json数据
    PDO 代码
    练习 《新闻管理》 添加 修改 删除
    UTF-8
  • 原文地址:https://www.cnblogs.com/dlvguo/p/10106272.html
Copyright © 2011-2022 走看看