当前位置:网站首页>Usage of ieda refactor
Usage of ieda refactor
2022-07-02 19:20:00 【thoughtCodes】
IEDA refactor Usage of
- Catalog
- summary
- Design thinking
- Analysis of implementation ideas
- 1.Refacot this
- 2.rename
- 3.rename file
- 4.change sinnature
- 5.Edit pro value
- 5.Type m
- 5.make static
- 6.convert to instance method
- 7.move class/member
- 8.copy class
- 9.safe delete
- 6.Extract
- 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
- genirity
- migrate
- interliatelize
- migrate to anroidRx
- Sequence and method of use
- Expand to achieve
- Performance parameter test :
- References and recommended readings
Survive by day and develop by night.
talk is cheap, show me the code,make a better result.
Catalog
summary
I've always wanted to write this usage , I used it before , Only part of it is used , Now outline , When we write the corresponding code according to the business requirements , This is very important .
demand :
Design thinking
Analysis of implementation ideas
1.Refacot this
Select object , Right click to pop up the suggestion list , Select refactoring .
2.rename
This is simpler , Use naming conventions , Rename it .
3.rename file
Rename the currently selected file
4.change sinnature
Usually it's changing the method , Change method parameters .
5.Edit pro value
Change the attribute value , The directory object does not , May be pro Document has
5.Type m
Type related
5.make static
Action object , Directory does not , Method objects have , It should be to turn the method into static Of .
6.convert to instance method
Turn the method into static Of , and 5 What's the difference ?
7.move class/member
Mobile class directory structure
8.copy class
Will file copy To the specified directory , Local directory failed .
9.safe delete
This is simpler , Safe deletion , File to be deleted file does not exist .
6.Extract
variable
Failed to select file at present , The selected expression should be :
The extraction expression is constant :
constant
Filed
Select variable , Property name failed , Similarly, you choose an expression :
But notice this IEDA Logic is not automatically drawn in , Is to treat the expression as a member variable .
paraeter
Failed to select a single variable name or function list . What should be chosen is the expression :
Choose the former :
After refactoring :
however IEDA There is no corresponding project extraction in logic .
object
Failed to select a single variable name or function list .
method:
Select the code line in the specific method , Extraction method :
Type parameter
Invalid selection method list .
Method object
Turn the calling method into an internal class and an anonymous class :
delegate
Usually it is to generate a new class , As a delegate . Called by the delegate object .
interface:
result :
super class
First choose :
result :
Will extract int Attribute and add corresponding extends class :
inline super class
Select parent class : After analysis and quotation :
result :
Invert bolean
I don't know yet
find and repalce duliate:
pull up member:
pull down member:
Select the corresponding parent class , extract
user inteface:
Choose the method to use , Analyze , Interfaces can be used instead of
inherit from replace
Generate a delegate class , An interface is implemented internally .
remove middlman
The service class has completely become “ A middleman ”, At this point, you should let the client call the entrusted class directly .
wrap method return value
Encapsulation method
encapsulate Fields:
replace temp with query
Replace temporary results with queries
replace constrct with factory
Replace the construction method with the factory method ,
Select the method line :
replace constructor with build
use builder Pattern construction method :
genirity
java The generics in , This information is scarce
migrate
transfer , Generally, it provides javaex,junit,swing Migration options :
interliatelize
online
migrate to anroidRx
Migrate to the corresponding androidRx:
Starting from the basic objects, there are probably so many , The menus that appear for different objects are not the same .
Sequence and method of use
From the perspective of granularity , look down :
Mainly
1.varibale,constant,filed Wait for the operation
2.function Internal level , Mainly extracting parameters , Object etc. .
3. Choosing multiple lines is method, or method object ( As an anonymous class , Internal class processing )
In fact, it is also different from the extraction menu .
Then it's based on class File level refactoring :
For a single class :
1. Delete , Move , Delete etc.
2. A higher level : Rename, etc .
This part can have operating system management , It only provides another editing entry .
For many categories : From a design point of view : Usually 3 individual :
delagate,interface,superclass,
The first objects to choose are extends,impl Keywords, etc , This part can be realized
For a mature project , Actual letter extends It seems to use more .
For its relationship expansion .
Then there are some pattern Has applied best practices .
Such as builder,factorypattern. Will generate a builder File and call file .
Then there is class lib Level ,
does jar transfer ,class Generic :
That's right Java Development is basically enough ,
If there is, it is the file conversion between systems, such as :
Transfer to androidX file .
So far, the analysis is finished .
Expand to achieve
- Entry level implementation :
- Partial source code implementation .
- The source code to achieve
Theory provides the basis . Generally optimized to pattern It's about the floor .
Performance parameter test :
nothing
References and recommended readings
Welcome to , Dear brother , If it helps you , A little praise and a little attention !~
边栏推荐
- [daily question] first day
- Web2.0的巨头纷纷布局VC,Tiger DAO VC或成抵达Web3捷径
- R语言ggplot2可视化:可视化折线图、使用labs函数为折线图添加自定义的X轴标签信息
- C的内存管理
- R语言ggplot2可视化:gganimate包创建动态柱状图动画(gif)、使用transition_states函数在动画中沿给定维度逐步显示柱状图
- Develop fixed asset management system, what voice is used to develop fixed asset management system
- Juypter notebook modify the default open folder and default browser
- Excel finds the same value in a column, deletes the row or replaces it with a blank value
- 【pytorch学习笔记】Tensor
- Machine learning notes - time series prediction research: monthly sales of French champagne
猜你喜欢
Novice must see, click two buttons to switch to different content
Juypter notebook modify the default open folder and default browser
Introduction to the paper | application of machine learning in database cardinality estimation
PHP parser badminton reservation applet development requires online system
Have you stepped on the nine common pits in the e-commerce system?
Yunna | why use the fixed asset management system and how to enable it
[100 cases of JVM tuning practice] 02 - five cases of virtual machine stack and local method stack tuning
【JVM调优实战100例】03——JVM堆调优四例
仿京东放大镜效果(pink老师版)
ICDE 2023|TKDE Poster Session(CFP)
随机推荐
Excel如何进行隔行复制粘贴
PHP-Parser羽毛球预约小程序开发require线上系统
[论文阅读] CA-Net: Leveraging Contextual Features for Lung Cancer Prediction
线程应用实例
C的内存管理
[test development] takes you to know what software testing is
性能测试如何创造业务价值
Tutoriel (5.0) 10. Dépannage * fortiedr * fortinet Network Security expert NSE 5
开发固定资产管理系统,开发固定资产管理系统用什么语音
In pytorch function__ call__ And forward functions
FastDFS安装
Excel finds the same value in a column, deletes the row or replaces it with a blank value
移动机器人路径规划:人工势场法[通俗易懂]
How can retail enterprises open the second growth curve under the full link digital transformation
Transformation of thinking consciousness is the key to the success or failure of digital transformation of construction enterprises
预处理和预处理宏
Gamefi链游系统开发(NFT链游开发功能)丨NFT链游系统开发(Gamefi链游开发源码)
[0701] [paper reading] allowing data imbalance issue with perforated input during influence
metric_logger小解
[daily question] first day