zoukankan      html  css  js  c++  java
  • 设计模式学习笔记——适配器模式(Adapter Patten)

    学习TerryLee的设计模式颇有感触,留下以下笔记以作日后参考。

    代码
    //--------------------------------------------------------
    //有些时候一些以前的代码不能修改,
    //但在新的项目中需要使用。
    //但新的项目中的接口名词不同。
    //那么旧的项目中的代码如何适配新的项目中的代码呢?
    //You can use Adapter Patten.
    //--------------------------------------------------------

    #region 不能修改的代码,但必须使用
    public interface IReader
    {
    void Read()
    { }
    }

    public class TxtReader : IReader
    {
    #region IReader Members

    public void Read()
    {
    throw new NotImplementedException();
    }

    #endregion
    }

    public class XmlReader : IReader
    {
    #region IReader Members

    public void Read()
    {
    throw new NotImplementedException();
    }

    #endregion
    }

    #endregion

    #region 必须使用的新接口

    public interface IGetWayReader
    {
    void GetWayReader();
    }

    #endregion

    #region 类适配模式

    public class GetWayTxtReader : IReader, IGetWayReader
    {

    #region IReader Members

    public void Read()
    {
    throw new NotImplementedException();
    }

    #endregion

    #region IGetWayReader Members

    public void GetWayReader()
    {
    Read();
    }

    #endregion
    }

    #endregion

    #region 对象适配模式

    public class GetWayReader : IGetWayReader
    {
    IReader Reader;

    public GetWayReader(IReader reader)
    {
    Reader
    = reader;
    }

    #region IGetWayReader Members

    public void GetWayReader()
    {
    Reader.Read();
    }

    #endregion
    }

    #endregion
  • 相关阅读:
    VIM中去除Windows文本中的^M符号,多种方法
    LAMP=LINUX+Apache+MySQL+PHP
    个人常用的VIM命令列表
    vim与windows/linux之间的复制粘贴小结
    eclipse中安装vim插件
    关闭VIM/VI自动备份
    linux一些个非官方网站
    程序员的编辑器
    linux和windows双系统互拷文件乱码问题
    Linux ubuntu lamp安装配置环境phpmyadmin
  • 原文地址:https://www.cnblogs.com/chuifeng/p/1916611.html
Copyright © 2011-2022 走看看