提升方法
2015-07-21 10:07
260 查看
概念:提升方法是指将一个很多继承类都要用到的方法提升到基类中。
正文:提升方法是指将一个很多继承类都要用到的方法提升到基类中,这样就能减少代码量,同时让类的结构更清晰。如下代码所示,Turn方法在子类Car 和Motorcycle 都会用到,因为Vehicle 都会有这个方法,所以我们就会想到把它提到基类中。
重构后的代码如下,那么现在Car 和Motorcycle 都具有Turn这个方法,如果这个方法修改也只需要修改基类即可,所以给维护和以后的重构带来了方便。
总结:这个重构要根据具体情况使用,如果不是每个子类都有这个方法的话,可以考虑使用接口或者其他方式。
正文:提升方法是指将一个很多继承类都要用到的方法提升到基类中,这样就能减少代码量,同时让类的结构更清晰。如下代码所示,Turn方法在子类Car 和Motorcycle 都会用到,因为Vehicle 都会有这个方法,所以我们就会想到把它提到基类中。
namespace LosTechies.DaysOfRefactoring.PullUpMethod.Before { public abstract class Vehicle { // other methods } public class Car : Vehicle { public void Turn(Direction direction) { // code here } } public class Motorcycle : Vehicle { } public enum Direction { Left, Right } }
重构后的代码如下,那么现在Car 和Motorcycle 都具有Turn这个方法,如果这个方法修改也只需要修改基类即可,所以给维护和以后的重构带来了方便。
namespace LosTechies.DaysOfRefactoring.PullUpMethod.After { public abstract class Vehicle { public void Turn(Direction direction) { // code here } } public class Car : Vehicle { } public class Motorcycle : Vehicle { } public enum Direction { Left, Right } }
总结:这个重构要根据具体情况使用,如果不是每个子类都有这个方法的话,可以考虑使用接口或者其他方式。
相关文章推荐
- Squid权威指南
- android在当前app该文件下创建一个文件夹
- POJ Wormholes (SPFA)
- ERROR C1189:Building MFC Application with.......
- 学习play遇到的问题汇总
- DirectX 10 学习笔记1:VS2010环境中配置DX10或DX11
- 结构体中的内存对齐操作
- 顺序表基本操作
- android中处理异常崩溃
- 应用程序的版本更新
- ios-画图UIBezierPath
- 总结----关于图片旋转
- iOS-CoreLocation:无论你在哪里,我都要找到你!
- PQJ 1686(栈栈栈)
- [干货来袭]C#6.0新特性
- linux cdev 理解
- window7下 HTTP 错误 500.19 - Internal Server Error 错误解决方法 集锦iis7
- ZooKeeper安装方法详解
- 杭电1007
- 创建Windows服务(Windows Services)N种方式总结