理解:提取接口的意思是,多于一个类共同使用某个类中的方法或属性,那么我们可以把这些方法和属性提出来,作为一个单独的接口。这样的好处是解除代码间的依赖,降低耦合性。
详解:
先看重构前的代码:
1 public class ClassRegistration 2 { 3 public void Create() 4 { 5 // create registration code 6 } 7 8 public void Transfer() 9 { 10 // class transfer code 11 } 12 13 public decimal Total { get; private set; } 14 } 15 16 public class RegistrationProcessor 17 { 18 public decimal ProcessRegistration(ClassRegistration registration) 19 { 20 registration.Create(); 21 return registration.Total; 22 } 23 }
RegistrationProcessor 类只使用到了ClassRegistration 类中的Create方法和Total 字段,所以可以考虑把他们做成接口给RegistrationProcessor 调用。
重构后的代码:
1 public interface IClassRegistration 2 { 3 void Create(); 4 decimal Total { get; } 5 } 6 7 public class ClassRegistration : IClassRegistration 8 { 9 public void Create() 10 { 11 // create registration code 12 } 13 14 public void Transfer() 15 { 16 // class transfer code 17 } 18 19 public decimal Total { get; private set; } 20 } 21 22 public class RegistrationProcessor 23 { 24 public decimal ProcessRegistration(IClassRegistration registration) 25 { 26 registration.Create(); 27 return registration.Total; 28 } 29 }
我们提取了一个IClassRegistration 接口,同时让ClassRegistration 继承此接口,然后调用端RegistrationProcessor就可以直接通过IClassRegistration 接口进行调用。
原文:http://www.cnblogs.com/yplong/p/5300096.html