学习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