适配器模式就是要完成,旧系统和新系统对接。
假如你有一个旧系统,你又要开发一个新系统。你想在旧系统的基础上来做。这样你就可以省下大量的时间和金钱。那么你如何来整呢?这个解决方案就是适配器模式。
可以完成如何工作:
1、第三方类库
2、第三方API
3、第三方代码
代码实现方式:
class Program { static void Main(string[] args) { INewQuery select = AdapterFactory.CreateAdapter(); object o = select.Query(); } } /// <summary> /// 适配器工厂,这个地方是用来读取配置文件,确定系统是要用XML查询,还是DB查询 /// </summary> public class AdapterFactory { public static INewQuery CreateAdapter() { return (INewQuery)Activator.CreateInstance(Type.GetType("")); } } /// <summary> /// XML适配器 /// </summary> public class XMLAdapter : INewQuery { /// <summary> /// 这个地方是要把旧的系统,包括到新系统中 /// </summary> private XMLOldQuery query = new XMLOldQuery(); public object GetList() { ///旧代码+新代码,在这里面写 return query.Query(); } } /// <summary> /// DB适配器 /// </summary> public class DbAdapter : INewQuery { /// <summary> /// 这个地方是要把旧的系统,包括到新系统中 /// </summary> private DbOldQuery query = new DbOldQuery(); public object GetList() { ///旧代码+新代码,在这里面写 return query.Query(); } } /// <summary> /// 新查询接口 /// </summary> public interface INewQuery { object Query(); } /// <summary> /// 旧的查询接口 /// </summary> public interface IOldQuery { object Query(); } /// <summary> /// 实现XML查询 /// </summary> public class XMLOldQuery : IOldQuery { public object Query() { throw new NotImplementedException(); } } /// <summary> /// 实现DB查询 /// </summary> public class DbOldQuery : IOldQuery { public object Query() { throw new NotImplementedException(); } }
参考文档:
http://www.cnblogs.com/hegezhou_hot/archive/2010/12/09/1901040.html
原文:http://www.cnblogs.com/lystory/p/5127944.html