重构第9天:提取接口(Extract Interface)
Posted IT少年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重构第9天:提取接口(Extract Interface)相关的知识,希望对你有一定的参考价值。
理解:提取接口的意思是,多于一个类共同使用某个类中的方法或属性,那么我们可以把这些方法和属性提出来,作为一个单独的接口。这样的好处是解除代码间的依赖,降低耦合性。
详解:
先看重构前的代码:
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 接口进行调用。
以上是关于重构第9天:提取接口(Extract Interface)的主要内容,如果未能解决你的问题,请参考以下文章
pytest + yaml 框架 - 2.extract 提取结果与接口之间的参数关联
pytest + yaml 框架 - 2.extract 提取结果与接口之间的参数关联