重构第5天:提升字段(Pull Up Field)
理解:提升字段和前面讲解的方法提公很类似,可以说方式都是一样的。就是把继承类中经常用到的字段,提出来 放到基类中,达到通用的目的。提高代码重用性和可维护性。
详解:如下重构前的代码:
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 关键字来修饰,表示只能被自身和子类使用。重构其实就这么简单。
重构第5天:提升字段(Pull Up Field)的更多相关文章
- 重构第6天:降低字段(Push Down Field)
理解:和提升字段正好相反,跟降低方法类似,就是把基类中,只有部分继承类需要用到的字段,降低到继承类自身去. 详解: 重构前代码: using System; using System.Collecti ...
- ArcMap中属性字段计算器(Field Calculator)的使用技巧
很多时候,我们在使用ArcGIS进行属性数据编辑时,需要批量修改某些字段值,这时候ArcGIS提供的属性字段计算器(Field Calculator)就是一把利器.下面我就Field C ...
- Mysql错误:#1054 - Unknown column '字段名' in 'field list'
# 1054 - Unknown column '字段名' in 'field list' 第一个就是你的表中没有这个字段 另一个就是你的这个字段前后可能有空格!!!,去掉空格即可!
- Error Code: 1054. Unknown column '字段名' in 'field list'
问题描述: j博主在java开发过程中,通过读取excel中表名和字段名,动态创建insert的SQL语句,在mysql可视化工具中执行此SQL语句时,一直提示"Error Code: 10 ...
- MySQL中 指定字段排序函数field()的用法
MySQL中的field()函数,可以用来对SQL中查询结果集进行指定顺序排序. 函数使用格式如下: order by (str,str1,str2,str3,str4……),str与str1,str ...
- Django ORM (一) 创建数据库和模型常用的字段类型参数及Field 重要参数介绍
创建一个 Django 项目及应用 django-admin startproject orm cd orm python manage.py startapp app01 在 models.py 上 ...
- Spring MVC-表单(Form)标签-隐藏字段(Hidden Field)示例(转载实践)
以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_hidden.htm 说明:示例基于Spring MVC 4.1.6. 以下示例显 ...
- 学习EXTJS6(8)基本功能-表单的基础表字段Ext.form.field.Basic
Ext.form.field.Basic是表单字段的基类. Ext.form.field.Text Ext.form.field.TextArea Ext.form.field.Number Ext. ...
- Unknown column '字段名' in 'field list' 错误解决方案
当后台报这个错误的时候,说明实体类中的字段名出错了,解决方案: 1,检查数据库中的字段名与实体类中的字段名是否一致,特别要注意单词字母, 2,检查数据库中的字段是否与实体类中的字段一致.比如数据库中没 ...
随机推荐
- Javascript生成全局唯一标识符(GUID,UUID)的方法
方法一 function guid() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { v ...
- Linux所有者和组
组 添加组 groupadd 组名 查看所有组 cat /etc/group 添加成员useradd -g 组名 用户名 查看成员 cat /etc/passwd 查看用户权限 ls -l d rw ...
- 用户管理 之 Linux 用户(user)和用户组(group)管理概述
一.理解Linux的单用户多任务,多用户多任务概念:Linux 是一个多用户.多任务的操作系统:我们应该了解单用户多任务和多用户多任务的概念: 1.Linux 的单用户多任务:单用户多任务:比如我们以 ...
- 2014年黑金FPGA原创教程规划发布
2014年已经过去快一半了,才出黑金2014年的FPGA原创教程规划,有点对不起大家了,哈哈! 俗话说,亡羊补牢,为时不晚,希望大家谅解啊,对于大家的支持,我们黑金人一向是感激.感恩.感谢! 下面大概 ...
- 在GridView中使用radioButoon
在GridView中使用radioButoon 方法一: <input type="radio" id='radioSelectFeed' name="radioD ...
- CEF 相关资料
理解WebKit和Chromium: Content API和CEF3 http://blog.csdn.net/milado_nju/article/details/7455373 如何将Chrom ...
- android多国语言文件夹文件汇总
android多国语言文件夹文件汇总如下: 中文(中国):values-zh-rCN 中文(台湾):values-zh-rTW 中文(香港):values-zh-rHK 英语(美国):values-e ...
- How to create an anonymous IDA PRO database (.IDB)
Source: http://www.0xebfe.net/blog/2013/01/13/how-to-create-an-anonymous-ida-pro-database-dot-idb/ P ...
- Windows CMD命令大全(转)
Windows CMD命令大全 命令简介 cmd是command的缩写.即命令行 . 虽然随着计算机产业的发展,Windows 操作系统的应用越来越广泛,DOS 面临着被淘汰的命运,但是因为它运行 ...
- Linux Ubuntu搭建git服务器
1. 安装 openssh-server ,用于创建SSH服务. sudo apt-get install openssl-server 使用命令ps -e|grep ssh,查看ssh服务是否启动. ...