针对接口编程能帮助达到面向对象开发和设计中"低耦合"的要求. 举个例子:某公司有一台特殊打印机,还可以使用一年,一年后可能换为另一种打印机,这两种打印机都特殊而贵.所以现在的程序希望换了打印机后也少量修改就可用. 方法: 1,定义一个打印机接口. 2,定义打印机类A,B,分别实现此接口. 3,定义一个工厂类,在类中可选择返回由A实现的接口,或者由B实现的接口. 4,在程序中使用打印机时,就可以使用工厂类来调用打印机,而不需要知道具体的是什么打印机. 如果打印机换了,只需要修改工厂类就行了.如果有一千个地方都调用过打印机,就不需要一个一个修改.修改一个地方就行了.接口充当一个隔离层的作用.
//定义打印机接口 interface Iprint { bool PrintData(string data); }
//定义打印机类A,实现接口,(继承)
class PrintA:Iprint { public virtual bool PrintData(string data) { //具体业务逻辑略 } }
定义打印机类B,实现接口,(继承)
class PrintB:Iprint { public virtual bool PrintData(string data) { //具体业务逻辑略 } }
//定义工厂类 class PrintFactory{ public Iprint CreatePrint() { //返回一个由打机类A,或B实现的接口,比如 return new PrintA(); } }
//通过工厂类,调用打印机 private void button1_Click(object sender,EventArgs e) { PrintFactory myFactory=new PrintFactory(); Iprint myPrint=myFactory.CreatePrint(); myPrint.PrintData("这样做很方便啊"); }
|