设计模式学习笔记——适配器模式(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
原文地址:https://www.cnblogs.com/chuifeng/p/1916611.html