J2ee 开发编程规范
四、 避免重复的代码
在一个类中,可能在各个方法中产生了相同的代码块。这就是重复的代码。重复的代码是难以维护和难以理解的。
有一个类其中有两个方法如下:
这似乎没有任何问题,但是这样的代码重复可能会导致严重的问题。1//发送一个包裹 2
public String deliveryWarePack(WarePackDTO warePack) 3
throws BusinessException ...{ 4
CommonDAOFactory factory = (CommonDAOFactory) this.context 5
.getBean(CommonDAOFactory.COMMON_DAO_FACTORY_BEAN_NAME); 6
WarePackDAO warePackDAO = (WarePackDAO) factory 7
.getDAOByRegionCode(this.WARE_PACK_DAO_NAME, "00"); 8
………… 9
} 10
11
//根据包号得到包信息 12
public WarePackDTO getWarePackByPackNum(String packNum) 13
throws BusinessException ...{ 14
CommonDAOFactory factory = (CommonDAOFactory) this.context 15
.getBean(CommonDAOFactory.COMMON_DAO_FACTORY_BEAN_NAME); 16
WarePackDAO warePackDAO = (WarePackDAO) factory 17
.getDAOByRegionCode(this.WARE_PACK_DAO_NAME, "00"); 18
……… 19
} 20
1. 太多的代码:如果重构后只用两行就可以了
2. 令阅读者迷惑不解,阅读者可能会对开发人员产生怀疑,认为这两处是两个不相同的代码,从而去进行比较,花费更多的时间和精力。
3. 造成修改的不一致,经常可能发现对一个方法进行了修改,而忘记也应该对另一个方法也进行相同的修改。增加代码的维护量。
修改后的代码:
1private WarePackDAO warePackDAO= getWarePackDAO(); 2
private CommonDAOFactory getFactory() ...{ 3
CommonDAOFactory factory = 4
= (CommonDAOFactory) this.context 5
.getBean(CommonDAOFactory.COMMON_DAO_FACTORY_BEAN_NAME); 6
return factory; 7
} 8
9
Private WarePackDAO getWarePackDAO()...{ 10
WarePackDAO dao = (WarePackDAO)this. getFactory(). getDAOByRegionCode( 11
this.WARE_DAO_NAME, "00"); 12
return dao; 13
} 14
15
//发送一个包裹 16
public String deliveryWarePack(WarePackDTO warePack) 17
throws BusinessException ...{ 18
String packNumber = this.warePackDAO.insertWarePack(warePack); 19
} 20
21
//根据包号得到包信息 22
public WarePackDTO getWarePackByPackNum(String packNum) 23
throws BusinessException ...{ 24
WarePackDTO warePack = this.warePackDAO.getWarePack(packNum); 25
……………….. 26
} 27
0
相关文章
