重构第5天:提升字段(Pull Up Field)
2016-03-16 22:07
399 查看
理解:提升字段和前面讲解的方法提公很类似,可以说方式都是一样的。就是把继承类中经常用到的字段,提出来 放到基类中,达到通用的目的。提高代码重用性和可维护性。
详解:如下重构前的代码:
从代码乐意看出,Account类的继承类CheckingAccount和SavingsAccount都有一个相同的字段_minimumCheckingBalance ,为了提高易用性和可维护性,我们把_minimumCheckingBalance 字段提出来放到基类Account中去。
重构后的代码:
注意提到公共基类中,最好用 protected 关键字来修饰,表示只能被自身和子类使用。重构其实就这么简单。
详解:如下重构前的代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _31DaysRefactor { public abstract class Account { } public class CheckingAccount : Account { private decimal _minimumCheckingBalance = 5m; } public class SavingsAccount : Account { private decimal _minimumCheckingBalance = 5m; } }
从代码乐意看出,Account类的继承类CheckingAccount和SavingsAccount都有一个相同的字段_minimumCheckingBalance ,为了提高易用性和可维护性,我们把_minimumCheckingBalance 字段提出来放到基类Account中去。
重构后的代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _31DaysRefactor { public abstract class Account { protected decimal _minimumCheckingBalance = 5m; } public class CheckingAccount : Account { } public class SavingsAccount : Account { } }
注意提到公共基类中,最好用 protected 关键字来修饰,表示只能被自身和子类使用。重构其实就这么简单。
相关文章推荐
- 如何利用c返回一个参数中其二进制数中1的个数
- 在Mac OS环境安装Composer
- jquery 自定义事件
- C++拷贝构造函数详解
- Android自定义的圆形进度条
- maven 项目出现 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
- Java之泛型——实践准则
- Networking Named Content 全文翻译(转)
- UML类图几种关系的总结
- 虚拟机类加载机制
- 2016.3.16__CSS3渐变_倒影_过渡_2D变形_3D变形__第十天
- 数据库性能优化
- 20135320赵瀚青LINUX第一章读书笔记
- AutoHotkey 使用笔记
- [android] 网络图片查看器
- 关于使用node进行网站前后端分离设想和问题解决
- VC编译没有错误,exe文件操作数据库(ADO/MDB)时报错,解决方法
- Q
- hdu2844 完全背包+多重背包(经典)
- Hibernate的缓存策略