技术开发 频道

J2ee 开发编程规范



    四、 避免重复的代码
    在一个类中,可能在各个方法中产生了相同的代码块。这就是重复的代码。重复的代码是难以维护和难以理解的。

    有一个类其中有两个方法如下:

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

1private WarePackDAO warePackDAO= getWarePackDAO(); 2private CommonDAOFactory getFactory() { 3CommonDAOFactory factory = 4= (CommonDAOFactory) this.context 5.getBean(CommonDAOFactory.COMMON_DAO_FACTORY_BEAN_NAME); 6return factory; 7} 8 9Private WarePackDAO getWarePackDAO(){ 10WarePackDAO dao = (WarePackDAO)this. getFactory(). getDAOByRegionCode( 11this.WARE_DAO_NAME, "00"); 12return dao; 13} 14 15//发送一个包裹 16public String deliveryWarePack(WarePackDTO warePack) 17throws BusinessException { 18String packNumber = this.warePackDAO.insertWarePack(warePack); 19} 20 21//根据包号得到包信息 22public WarePackDTO getWarePackByPackNum(String packNum) 23throws BusinessException { 24WarePackDTO warePack = this.warePackDAO.getWarePack(packNum); 25……………….. 26} 27
0
相关文章