设计模式第十五讲:重构 - 改善既有代码的设计(下)

16、中间人 Middle Man中间人负责处理委托给它的操作,如果一个类中有过多的函数都委托给其它类,那就是过度运用委托,应当 Remove Middle Man,直接与负责的对象打交道。17、狎昵关系 Inappropriate Intimacy两个类多于亲密,花费太多时间去探讨彼此的 priv...

设计模式第十五讲:重构 - 改善既有代码的设计(上)

设计模式第十五讲:重构 - 改善既有代码的设计(上)

一、第一个案例如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地达成目的,那就先重构这个程序。在重构前,需要先构建好可靠的测试环境,确保安全地重构。重构需要以微小的步伐修改程序,如果重构过程发生错误,很容易就能发现错误。案例分析影片出租店应用程序,需要计算每位顾客的消费金额。包括三个类...

设计模式第九讲:常见重构技巧 - 去除不必要的!=

设计模式第九讲:常见重构技巧 - 去除不必要的!=

1、场景一:null无意义之常规判断空通常是这样的private void xxxMethod(String key){ if(key != null && !"".equals(key)){ // do something } }初步的,使用Apache Commons,Guvav...

设计模式第八讲:常见重构技巧 - 去除多余的if else

设计模式第八讲:常见重构技巧 - 去除多余的if else

1、出现if/else和switch/case的场景通常业务代码会包含这样的逻辑:每种条件下会有不同的处理逻辑。比如两个数a和b之间可以通过不同的操作符(+,-,*,/)进行计算,初学者通常会这么写:public int calculate(int a, int b, Stri...

【Java设计模式 规范与重构】 六 代码重构小结

【Java设计模式 规范与重构】 六 代码重构小结

最近趁着学习劲头足,如饥似渴的把代码重构部分也学习完了,可以说9月份属实非常充实,貌似也只有学习才能导致生活没有那么无聊。代码重构博客目录序号文章列表1【Java设计模式 规范与重构】 一 重构的目的、内容、时机、方法2【Java设计模式 规范与重构】 二 重构的保障:单元测试,以及如何提高代码可测...

【Java设计模式 思想原则重构】设计思想、设计原则、重构总结

【Java设计模式 思想原则重构】设计思想、设计原则、重构总结

从2022年3月6日开始学习设计模式相关知识【Java设计模式 前言】我为什么要学习设计模式,到现在半年余,终于将设计思想、设计原则、重构相关内容学习完了,设计模式也学习完了创建型和结构型,回顾年度目标,不得不说【设计模式】是个难啃的骨头,还是要今年啃完:不过学习完了收获也是最大的,这...

【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(下)

第二轮重构:提高代码可测试性关于代码可测试性的问题,主要包含下面两个方面:generate 函数定义为静态函数,会影响使用该函数的代码的可测试性,第一个问题已经解决,调用时可以在外部创建好IdGenerator然后实现。generate函数的代码实现依赖运行环境(本机名)、时间函数、随...

【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(上)

【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(上)

前面学习了这么多重构相关的知识,比如:持续重构、单元测试、代码的可测试性、解耦、编码规范。都是在理论层面,而重构本身是一个实战的事儿,所以如何将这些理论运用到实践中至关重要,否则只能是纸上谈兵。今天用一个案例case来串联之前学习的重构,来做到融汇贯通。CASE背景后端开发中,为了方便在请求出错时排...

【Java设计模式 规范与重构】 四 小型重构的手段:规范的十五条军规

上篇Blog讲到:高内聚-低耦合是解决大型重构的手段,相对于编码规范,它能够在更高层次上提高代码的可读性和可维护性,是大型重构的重要手段,从面向对象设计思想层面角度就是:封装、抽象,从思想的最佳实践角度就是基于接口而非实现编程、多用组合少用继承,从设计原则层面角度就是:S...

【Java设计模式 规范与重构】 三 大型重构的手段:高内聚,低耦合

之前通过两篇Blog了解了重构的目的、内容、时机、方法、保障,了解了持续重构的重要性和好处,知道了单元测试对于重构代码的保障作用,同时明确小范围重构依照规范随时进行,而大型重构需要分层、模块化、解耦、抽象可复用组件等手段,有计划的进行,本篇Blog继续学习如何应对大型重构,核心方式就是践行高内聚&a...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。