亡羊补牢的步骤-适配器模式
亡羊补牢的方法---适配器模式
我们在VS2010环境中,经常从数据库中查询数据并返回给DataSet,然后绑定前台显示。他们都知道它的原理吗?实际上在这个过程当中,数据做了一次转换。我们后天先不管你是Sqlserver、DB2、Oracle等数据库,它先将数据查询出来并返回到DataAdapter中,然后由DataAdapter转换成DataSet;所以,我们在前台操作的时候根本不用去关心是哪种数据库。这个地方DataAdapter就是中间转换器,这个地方就用到了我们的要讲的设计模式---适配器模式。
什么是适配器模式?将一个类的接口转化成客户希望的另外一个接口,Adapter模式使得由于接口不兼容而不能一起工作的那些类可以一起工作。就是说,使用一个已经存在的类,但如果他的接口,它的方法和你要求的不相同的时候,就需要考虑用适配器模式;目的是为了方便统一的调用。(针对两类所做的事情相似,但在实际项目中难于修改的)。
Target是用户期望调用的接口,可以是具体的类、抽象类或者接口:
class Target { public virtual void Request() { Console.WriteLine("一般请求"); } }需要适配的类(Adaptee):
class Adaptee { public virtual void SpecificRequest() { Console.WriteLine("特殊请求"); } }
Adapter类里面存储一个需要装换的类对象,并在继承重写方法的时候转换成对应的方法进行调用:
class Adapter:Target { //建立一个需要适配的类对象 private Target a=new Adaptee(); public virtual void Request() { //转换成需要适配的类对象调用 a.SpecificRequest(); } }客户端代码:
static voi Main(String[] arg) { Adapter adapter=new Adapter(); adapter.Request(); }大家可能说这个模式和门面模式有点像,但是它们并一样。留给大家去思考?