关于重构10条Tip

简介:

Tip1:

Bad practice

复制代码
private   void  Method()
{   
int  Var1;   
int  Var2;   
int  Var3;   
// Some more statements
Var1  =   10 ;
}
复制代码

Good Practice

 
复制代码
private   void  Method()
{   
int  Var2;   
int  Var3;   
// Some more statements
int  Var1;   
Var1 
=   10 ;
}
复制代码

这个方法增加的代码的可读性。易于维护和扩展。

Tip 2 :

如果临时变量只是在一个地方使用,应该避免声明,如下所示。

Bad practice

 
private   string  GetData()
{  
string  temp;  
temp 
=  expression  +  ( var1  *  var2).ToString(); // Some expression which  calculate the desired value  
return  temp;
}

Good practice

 
private   string  GetData()

return  (expression  +  (var1  *  var2).ToString());
}

Tip 3 

在一类,如果方法中一表达式在不同的重复。封装它,同时提供属性或方法,如下所示。

这样增加了代码的重复使用,易于扩展和维护

Bad practice

代码

Good practice

代码

Tip 4

 

 

 

基于一个设计原则 - SRP(单一职责原则)一个类,最好只做一件事,只有一个引起它变化的原因。不要在一个类中放置多个功能。

Bad practice:

不要在一个类中同时放置业务逻辑和持久性逻辑。

下面的 'Customer' 类既包含业务逻辑又包含持久性逻辑。因此,存在有两个理由去改造(业务和数据相联系)。这是违反了单一职责原则。

 
代码

Good practice:

有两组类 - 一组业务和一组持久化的

在下面的片段中,我们有两项类设置一个独有的域逻辑(客户),从而获得通过库类的数据的能力(这是专为数据)。

 
代码

Tip 5

总是使用抽象/接口规划程序而不是具体的类。这样有利于扩展、松散耦合、插件。

这也将是符合设计原则之一- 里氏替换原则 - 简单的总结的是,每个子类能替代的基类。

例如:如果要我写一个数据持久化类。

Bad practice

 
代码

Good practice

 
代码

Tip 6

移除未使用的变量的代码

Bad practice 

在下面的代码声明了var1,但没有使用

 

复制代码
public   class  A
{
private int var1;
private void Method()
{
// Some statements...
}
}
复制代码

Good practice

复制代码
public   class  A
{
private   void  Method()
{
// Some statements...
}
}


复制代码

Tip 7

从代码中删除未使用的方法。这有助于实现高度维护的代码在下面的函数方法片段,但声明没有使用。

Bad practice

复制代码
public   class  A      
{
private   void  Method1()
{
// Some statements...
}
public   void  Method2()
{
// Some statements
}
}
复制代码

Good practice

复制代码
public   class  A   
{
public   void  Method2()
{
 
// Some statements
}
}
复制代码

Tip 8                  

删除没有使用类/类型的声明。删除代码中没有使用的命名空间-这通常发生在我们的移除没有使用的类或类型的过程中。

Tip 9

如果你的静态方法要在所有的实体/类型/类中使用,将这个静态方法到实体中。例如:

Bad practice

复制代码
public   class  Utility
{
public   static   void  Method1(Customer cust)

// Some processing on the Entity customer...

public   static   void  Method2(some param)
{
// Some statements
}
}
复制代码

Good practice

复制代码
public   class  Utility     
{
public  static void Method2(some param)
{
 
// Statements... 
}
}
public   class  Customer
{
public void Method1()
{
 
// Do the processing...
}
}
复制代码

Tip 10

Bad practice 

代码

Good practice 

代码

 

 




本文转自麒麟博客园博客,原文链接:http://www.cnblogs.com/zhuqil/archive/2010/03/03/Refactoring-Tips.html,如需转载请自行联系原作者





相关文章
|
21天前
|
小程序 前端开发 Android开发
微信小程序(van-tabs) 去除横向滚动条样式(附加源码解决方案+报错图)
微信小程序(van-tabs) 去除横向滚动条样式(附加源码解决方案+报错图)
13 1
|
6月前
|
存储 异构计算
[√]creator对color处理的细节逻辑
[√]creator对color处理的细节逻辑
50 0
|
11月前
|
设计模式 存储 SQL
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(上)
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(上)
105 0
|
11月前
|
设计模式 存储 Java
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(下)
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(下)
175 0
ES6 折腾记 - 箭头函数【Arrow function】要点及脱坑点
ES6的箭头函数的特点:永远是匿名函数,This指向obj内部; 什么是箭头函数?:箭头函数是匿名函数,ES5匿名函数的语法糖;但又增加了ES5所没有的一些优点
89 0
|
前端开发 API
#yyds干货盘点# 【React工作记录三十九】ant design控制tag选中的写法
#yyds干货盘点# 【React工作记录三十九】ant design控制tag选中的写法
139 0
#yyds干货盘点# 【React工作记录三十九】ant design控制tag选中的写法
|
缓存 JavaScript 前端开发
编写更好的jQuery代码
讨论jQuery和Javascript性能的文章有很多。不过在这里我还是要总结一下jQuery的提速策略,还有我自己的一些建议,希望这些建议能帮助你写出更好的jQuery和JavaScript代码。更好的代码意味着更快的应用和无垃圾的网站。更快的渲染和响应意味着更好的用户体验。
116 0
编写更好的jQuery代码
8 个 Tips 让你更好的进行 Code Review
Code Review 可以提高代码质量。
1278 0
qtquickcontrols2控件集(使用参考重构)
       随着Qt的版本升级,其自带的controls控件库也不断升级,目前已经到了2.3的版本。本文通过重构并且解读Qt自带的gallery例程,说明新版本controls控件库的相关特性 来自为知笔记(Wiz) 目前方向:图像拼接融合、图像识别 联系方式:jsxyhelu@foxmail.
1147 0