refactor菜单解析

Survive by day and develop by night.
talk is cheap, show me the code,make a better result.

目录

在这里插入图片描述

概述

一直想写个这个用法,之前也用过,只是用了一部分,现在概述一下,当我们按照业务需求写好对应的代码时,这点是非常重要的。

需求:

设计思路

实现思路分析

1.Refacot this

选择对象,右键弹出建议列表,选择重构即可。

2.rename

这个比较简单,使用命名规范,重命名即可。

3.rename file

在当前选中文件重命名即可

4.change sinnature

通常是改动方法,改变方法参数。

5.Edit pro value

改变属性数值,目录对象没有,可能是pro文件有

5.Type m

类型相关

5.make static

操作对象,目录没有,方法对象有,应该是将方法变成static 的。

6.convert to instance method

将方法转成static 的,和5有什么区别呢?

7.move class/member

移动类的目录结构的

8.copy class

将文件copy到指定的目录,本地目录失败。
在这里插入图片描述

9.safe delete

这个比较简单,安全删除,文件待待删除文件不存在了。
在这里插入图片描述

6.Extract

variable

目前选择文件失败,选择的应该是表达式:
在这里插入图片描述
抽取表达式为常量:

constant

在这里插入图片描述

Filed

选择变量,属性名失败,同理选择的是一个表达式:
在这里插入图片描述
但是注意的是这个IEDA没有自动的将逻辑抽进去,就是将表达式作为一个成员变量处理了。

paraeter

选择单一变量名称或函数列表失败。应该选择的是表达式:
选择前:
在这里插入图片描述
重构后:
在这里插入图片描述
但是IEDA在逻辑上也没有对应的工程抽取。

object

选择单一变量名称或函数列表失败。

method:

在这里插入图片描述
选择具体的方法内的代码行,抽取方法:

Type parameter

选择方法列表无效。

Method object

在这里插入图片描述
将调用方法变成内部类和匿名类:
在这里插入图片描述

delegate

在这里插入图片描述
通常是生成一个新类,作为委派对象。由委派对象调用。

interface:

在这里插入图片描述
结果:
在这里插入图片描述

super class

先选择:
在这里插入图片描述

结果:
将抽取int 属性和增加对应的extends 类:
在这里插入图片描述

inline super class

选择父类:经过分析引用之后:
结果:
在这里插入图片描述

Invert bolean

暂时还不知道

find and repalce duliate:

在这里插入图片描述

pull up member:

pull down member:

选择对应的父类,抽取

user inteface:

选择使用的方法,进行分析,可以使用接口代替

inherit from replace

在这里插入图片描述
生成一个委派类,在内部的实现了一个接口。

remove middlman

服务类完全变成了“中间人”,此时你就应该让客户直接调用受托类。

wrap method return value

封装方法

encapsulate Fields:

在这里插入图片描述

replace temp with query

用查询取代临时结果

replace constrct with factory

用工厂方法取代构造方法,
选择方法行: 在这里插入图片描述

replace constructor with build

用builder模式构造构造方法:
在这里插入图片描述

genirity

java 中的泛型,这个资料很少

migrate

迁移,一般提供了javaex,junit,swing的迁移选项:
在这里插入图片描述

interliatelize

在线的

migrate to anroidRx

迁移到对应的androidRx:

以上从基本的对象出发大概就这么多,针对不同的对象出现的菜单也不是一样。

使用顺序和方法

如下从粒度的角度,看下:
主要是
1.varibale,constant,filed等操作
2.function 内部的级别,主要是抽取参数,对象等。
3.选择多行的就是method,或method对象(作为匿名类,内部类处理)
其实也是抽取菜单的不同。

接着就是基于class文件级别的重构:
对单类来说:
1.删除,移动,删除等
2.较为更高的级别:重命名等。
这部分可以有操作系统管理,也仅是提供了另一个编辑入口。

多类来说:设计角度来说:通常是3个:
delagate,interface,superclass,
首先选择的对象有extends,impl 关键字等,这部分才能实现
对于一个成熟项目来说,实际来书extends好像用的多一下。
对于其关系展开的。

接着就是一些pattern的应用了最佳实践了。
如builder,factorypattern.会生成一个builder文件和调用文件。

接着就是class lib 级别的了,
无非就是jar 迁移,class 泛型:
以上对Java开发基本够了,

如果还有那就是系统间文件转换了如:
转成迁移到androidX文件。

至此分析完毕。

拓展实现

入门级实现:
部分源码实现.
源码实现

理论提供了依据。一般优化到pattern 层就差不多了。

性能参数测试:

参考资料和推荐阅读

  1. 设计模式.
  2. 重构模式.
  3. 抽取变量.
    4.重构篇

欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
特别说明 -------- 新版本请访问网站www.bluefishes.net. 考虑到稳定性,新版本不支持Visual Studio.NET 2002. 产品名称 -------- SharpRefactor(C#代码重构工具) 产品简述 -------- 本工具用于代码重构和代码自动生成。现阶段主要用于C#代码重构。 所谓重构也就是“保持软件的外在功能不变,重新调整其内部结构”。 关于每种重构模式的含义,请参见http://www.refactoring.com/ 具体功能参见具体版本的特性列表。 对重构很感兴趣或是很关注使用效率的用户,希望[使用指南]一节对你有所助益。 版本 ---- 1.0.0(BETA). 发布日期 -------- 2003/6/13 作者 ---- C# Refactor Team. 制作 ---- Blue Workshop. 环境要求 -------- Visual Studio.Net 2003 Windows 2000 + SP2 + SMTP Service 特别提示 -------------- 本插件使用了异常处理和报告机制。 一般而言,环境、代码以及其他原因都会导致程序出错。因此,在您使用本插件的过程中,可能会弹出错误报告。一部分错误不会影响使用,另一部分会影响使用。 C# Refactor Team愿意随时提供技术支持,及时为你解除问题。 版本1.0.0特性 ------------- Rename Parameter Rename Local Variable Rename Field Rename Property Rename Class Rename NameSpace Safe Delete Parameter Safe Delete Local Variable Safe Delete Field Safe Delete Property Safe Delete Method Safe Delete Class Safe Delete NameSpace Extract Interface Undo/Redo Preview usage before refactor(重构前预览) Auto build after refactor(重构后自动生成) Options(工具选项) User feedback(用户反馈) 使用指南 -------- 所有功能暂不支持静态成员。 尽量使用鼠标右键菜单。 尽量使用快捷方式,比如:单击鼠标右键,弹出菜单后再连续按‘R’键和‘C’键就可以调用[Rename]菜单下的[Rename Class]命令。 在使用Rename系列命令时,需要先转到定义代码元素的地方。此时,可以先使用右键菜单中的[转到定义]命令。 在Option中可以设置首选项。 由于Visual Studio在生成较大的解决方案时有时会不成功,所以Auto build after refactor通常用于较小的解决方案。 Rename NameSpace与Move Class不同。Move Class的焦点在Class,即改变类所在的NameSpace。而Rename NameSpace的焦点在NameSpace,即改变指定NameSpace的名字,并更新该NameSpace的所有引用(Usages)。 错误报告以及建议功能需要网络连接和Windows自带的SMTP服务。因为发送速度很快,所以不会占用您宝贵的时间。 可以使用User feedback功能提出您睿智的建议、批评、任何意见。 技术支持 -------- Tiger.BlueWorkshop@163.net 下载 ---- www.csdn.net 版本 发布日期 ----------------------------- 1.0.0(Beta) 2003/6/13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

执于代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值