重构17-Extract Superclass(提取父类)
当一个类有很多方法希望将它们“提拔”到基类以供同层次的其他类使用时,会经常使用该重构。下面的类包含两个方法,我们希望提取这两个方法并允许其他类使用。
public class Dog {
public void eatFood() {
// eat some food
}
public void groom() {
// perform grooming
}
}
public class Animal {
public void eatFood() {
// eat some food
}
public void groom() {
// perform grooming
}
}
public class Dog extends Animal{}
重构17-Extract Superclass(提取父类)的更多相关文章
- 重构20-Extract Subclass(提取父类)
当一个类中的某些方法并不是面向所有的类时,可以使用该重构将其迁移到子类中.我这里举的例子十分简单,它包含一个Registration类,该类处理与学生注册课程相关的所有信息. public class ...
- 重构第17天提取父类(Extract SuperClass)
今天的重构来自 Martin Fowler的http://refactoring.com/catalog/extractSuperclass.html. 理解:本文中的“提取父类”是指类中有一些字段或 ...
- SSH整合中,使用父action重构子类action类.(在父类中获取子类中的泛型对象)
import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import com.opensymphony.x ...
- 重构第19天 提取工厂类(Extract Factory Class)
理解:本文中的“提取工厂类”是指如果要创建的对象很多,则代码会变的很复杂.一种很好的方法就是提取工厂类. 详解:一般来说我们需要在代码中设置一些对象,以便获得它们的状态,从而使用对象,所谓的设置通常来 ...
- 重构9-Extract Interface(提取接口)
我们来介绍一个常常被忽视的重构:提取接口.如果你发现多于一个类使用另外一个类的某些方法,引入接口解除这种依赖往往十分有用.该重构实现起来非常简单,并且能够享受到松耦合带来的好处. public cla ...
- 重构第20天 提取子类(Extact SubClass)
理解:提取子类就是把基类中,不是所有子类或者只有少数子类用到的方法,提取出来,调整到子类中去. 详解:下面的代码中我们用到一个单一的类Registration,来处理学生选课信息. public cl ...
- 【Java重构系列】重构31式之封装集合
2009年,Sean Chambers在其博客中发表了31 Days of Refactoring: Useful refactoring techniques you have to know系列文 ...
- Eclipse 重构功能的使用与重构快捷键
重构是什么? 在代码写好之后改进它的设计. 重构分类:物理结构.类层次结构.类内部结构. 名称 快捷键 直译 作用范围 描述 Rename Alt + Shift + R 可以对任意变量.类. ...
- Resharper的配置和使用
一:Reshaper简介 Reshaper是C#开发IDE工具Visual Studio的一款第三方插件,Reshaper让 VS 变得更强大.优势是:它提供了一些在 VS 基础上更方便于程序员开发的 ...
随机推荐
- CTE初识
微软从SQl2005起引入了CTE(Common Table Expression)以强化T-SQL.这是一个类似于非持久视图的好东西. 正常的SQL语句: select * from person. ...
- APP接口版本兼容的问题
现在基本每个公司都做APP,所以大家都面临 APP接口版本兼容的问题. iOS和android 要不断开发新版本,很多服务端开发都是在以前接口的逻辑上进行修改.新的APP和接口开发后,接口如何兼容老的 ...
- (《数论及应用1.3》NEFU 116 两仪剑法(最小公倍数&&最大公约数))
#include <iostream> using namespace std; long long gcd(long long a, long long b){ if(b == 0){ ...
- mvc4帮助类
@App @AppState @Ajax @Cache @Context @Culture @Html @IsPost @Layout @Model @Output @OutputStack @Pag ...
- android 小知识点
小知识点总结 1. android中MotionEvent.ACTION_CANCEL事件如何被触发? 对于这个问题,android文档的说明很简短,想看明白很难.国外一网页说的还比较详细,写在这里分 ...
- OC:面向对象的编程思想、基本的知识点总结、强,弱引用
OC 面向对象 和 面向过程 参考 面向过程:使用步骤划分功能,然后用函数一步一步的调用 面向对象:OOP (Object Oriented Programming) 使用功能来简化问题, 面向对象语 ...
- C:指针、数据类型、格式化输入输出、输入函数的坑点
指针.数据类型.格式化输入输出.输入函数的坑点 有时候我们迷茫的时候,坚持就是最好的选择. 1.指针的分类为什么很重要? 参考 答:因为指针会根据相应的类型取对应长度的数据,类型决定所取数据的长度.如 ...
- Jupyter增加内核
本例的Jupyter安装在Python3下,以增加Python2内核为例. 首先确认在Python3下已安装了内核: ipython kernel install --user #or python3 ...
- 【AS3 Coder】任务七:初涉PureMVC——天气预报功能实现
转自:http://www.iamsevent.com/post/36.html AS3 Coder]任务七:初涉PureMVC——天气预报功能实现 使用框架:AS3任务描述:了解PureMVC框架使 ...
- js 创建List<Map> 这种格式的集合
//赋值 var list_map = new Array(); for ( var i = 0; i < 10; i++) { list_map.push({baidux:'baidux'+i ...