博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
31天重构学习笔记5. 提升字段
阅读量:6962 次
发布时间:2019-06-27

本文共 1097 字,大约阅读时间需要 3 分钟。

概念:本文中的提升字段和前面的提升方法颇为相似,就是把子类公用的字段提升到基类中,从而达到公用的目的。

 

正文:如下代码所示, Account 的两个子类CheckingAccount 和SavingsAccount 都有minimumCheckingBalance 字段,所以可以考虑把这个字段提到基类中。

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace LosTechies.DaysOfRefactoring.PullUpField.Before {
public abstract class Account {
} public class CheckingAccount : Account {
private decimal _minimumCheckingBalance = 5m; } public class SavingsAccount : Account {
private decimal _minimumSavingsBalance = 5m; } }

重构后的代码如下,这样提的前提是这些子类有一个基类或者有很多相似的字段和方法,不然为了一个字段而单独建立一个抽象类是不可取的,所以这个就需要具体权衡。

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace LosTechies.DaysOfRefactoring.PullUpField.After {
public abstract class Account {
protected decimal _minimumBalance = 5m; } public class CheckingAccount : Account {
} public class SavingsAccount : Account {
} }

总结:这个重构的策略比较简单,同时也是比较常用的一些做法,最主要就是要注意权衡是否真的有这个必要,看这样做究竟有没有什么好处(比如只需要改一个地方,维护简便了,同时代码量也更少了等)。

转载于:https://www.cnblogs.com/ywsoftware/archive/2013/02/05/2892570.html

你可能感兴趣的文章
企业微博发布时间_内容_原则2
查看>>
Android安全退出应用程序
查看>>
第三方登录之我谈
查看>>
Angular JS 模块
查看>>
十六进制转二进制
查看>>
设计模式之模板模式
查看>>
直接插入排序
查看>>
springmvc4.x返回json数据
查看>>
日志管理-slf4j+logback
查看>>
iOS逆向之三-authorized_keys ssh登录越狱手机免验证设置
查看>>
socket 编程入门教程(二)winsock演示程序:2、TCP Server
查看>>
ARouter解析一:基本使用及页面注册源码解析
查看>>
vlc android 代码编译
查看>>
elasticsearch集群发现机制:Zen Discovery
查看>>
看这里,智和网管平台的网络拓扑功能更新啦
查看>>
Intent跳转详解
查看>>
mybatis学习笔记(6)-输入映射
查看>>
Android中Preference的使用以及监听事件分析
查看>>
Heroku error:Permission denied (publickey)
查看>>
解决linux的-bash: ./xx: Permission denied
查看>>