`
李宏喜
  • 浏览: 119525 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

分析、思考、重构

 
阅读更多
   在平时的开发中,我们总是习惯于使用过程化的思维方式来编写代码,没有通过开发高内聚的方法,来结构化自己的思维,从而消除逻辑重复,逻辑复用不仅仅是指在一个平面内的逻辑复用,更应该是一种结构化的逻辑复用。下面,我用平时开发过程中一个重构的过程,来做一个描述。
   假设,现在有三个类,如下图所示:
  




在这三个class中,分别有三个重复的属性:a, b, c, 而且这三个属性具有相关性,对应于一个功能的具体实现,
而这个具体实现,分别分布在了三个不同的业务中。首先,从这三个不同业务实现类中,抽取出一个基类。需要说明的是对于spring这样的使用注解方式,来注入依赖关系的,基类注解的关键字是:@MappedSuperclass


 

在功能处理类FunctionHandler类中,对这个功能的具体实现做处理,如下图:





参数的类型是 ABC,而不是A或B或C。利用继承或者多态,结构化地消除重复逻辑并复用。开发高内聚的方法,我个人认为对于消除重复逻辑,是很重要的。而高内聚的方法,肯定是存在于一个结构中的。应尽量避免使用过程化的思维习惯来开发软件,使用结构化的面向对象的方式来思考。消除重复的逻辑,获得变化空间!
    最后,我认为是《测试驱动开发》,《卓有成效的程序员》给我了这样的启发,感谢Kent Beck!
  • 大小: 6.2 KB
  • 大小: 11.1 KB
  • 大小: 10.8 KB
分享到:
评论

相关推荐

    公司重构与分析框架.pptx

    公司重构是一个复杂且系统的过程,需要经理人具备理性思考能力,能够从宏观和微观角度深入分析问题,提出并执行有效的解决方案。在这个过程中,理解重构的目的、方法和可能带来的影响至关重要,因为这将决定企业能否...

    java代码重构经验总结

    本文将深入探讨Java代码重构的关键点,涵盖重构原则、重构技巧以及常见的代码“坏味道”(bad smells),并结合示例代码进行分析。 #### 一、重构的重要性与原则 **1. 重构时机** - **版本控制前的重构:** 在...

    重构极限编程XP的实践与反思

    总的来说,《重构极限编程——XP的实践与反思》是一本对于开发者和项目经理极具价值的读物,它鼓励我们批判性地思考现有的开发模式,不断探索提高软件质量和团队效率的新途径。通过对XP的实践进行反思,我们可以更好...

    从技术角度思考券服务系统的重构方案

    券服务系统的重构是一个复杂而重要的任务,涉及到对现有系统架构的深入分析,找出问题并设计出更为合理的新架构。在本文中,我们将从技术角度详细探讨券服务重构的关键点,包括现状分析、问题识别和重构方案。 首先...

    《重构-改善既有代码的设计》电子书以及总结的书中源码

    《重构-改善既有代码的设计》是一本由Martin Fowler所著的经典IT著作,专注于软件开发中的重构实践和技术。这本书深入探讨了如何通过一...通过阅读和分析这些源码,开发者可以进一步提升自己的重构能力,提高代码质量。

    基于教材重构的深度学习.pdf

    基于教材重构的深度学习策略,正是教师通过深入分析教材,将知识进行结构化的重组,并设计有深度的问题,来促进学生的思维发展。通过这种策略,学生可以更好地理解知识的本质,形成独立思考和解决问题的能力,从而...

    互联网产品重构.pdf

    这需要对旧系统进行全面的分析,了解其业务逻辑和技术实现,为重构奠定基础。对于在线运营的系统,这一阶段尤其关键,因为任何误解都可能导致后续工作的复杂性增加。 其次,旧系统向重构后的系统迁移是另一大挑战。...

    20210414-民生证券-量化选股系列报告之六:工匠精神之利润表重构.pdf

    这一点强调了量化分析师在选择和使用财务数据时需要具备的洞察力和前瞻性思考。 最后,报告中还提到了风险提示,强调了所有的分析和结论都是基于历史数据,而历史数据不能保证未来也能被重复验证。这一点提醒投资者...

    心理学研究方法的系统分析与体系重构.pdf

    【心理学研究方法的系统分析与体系重构】 心理学研究方法在心理学的发展中扮演着至关重要的角色。自古希腊哲学家亚里士多德首次探讨人类心理现象以来,心理学经历了漫长的历史,直到19世纪后期,心理学才真正成为...

    Refactoring To Patterns《重构与模式》英文版

    该书旨在将重构技术和设计模式有效地结合起来,通过一系列具体的案例分析和实际代码示例来展示如何安全地进行设计变更。 #### 关键概念解析 **重构**是一种软件工程实践,指的是在不改变外部行为的前提下对现有...

    采用haar小波实现二维图像的分解与重构(mallat算法):

    Haar小波是最早被引入到小波分析中的简单小波基,而Mallat算法则是用于实现小波分解和重构的一个经典算法。这篇课堂作业将深入探讨如何利用Haar小波和Mallat算法对二维图像进行分解与重构。 Haar小波是一种离散小波...

    互联网金融伦理失范与伦理重构思考.pdf

    互联网金融伦理失范与伦理重构思考 一、金融伦理概述 金融伦理是金融学与伦理学的交叉学科,包含广义和狭义两种概念。广义的金融伦理包括金融活动中所有参与方应遵循的道德准则和行为规范;而狭义的金融伦理特指...

    AI大模型时代的产业重构

    AI大模型时代的全球产业链重构:分析了AI大模型如何影响全球产业链,特别是对家电、PC、手机之后的产业链重构。 中美算力产业链的发展趋势:讨论了中美在算力产业链中的发展趋势,以及国产算力链的发展机遇。 全球...

    重构-改善既有代码设计(中英合集

    6. **案例分析**:书中包含多个真实的重构案例,通过对具体代码的分析和改进,让读者更好地理解和应用重构技巧。 总的来说,《重构-改善既有代码设计》是一本实践导向的指南,它不仅提供了丰富的重构技术,还传授了...

    技术素养导向的电气CAD课程多维重构初探.pdf

    在课堂上,教师可以引导学生通过案例分析、项目制作等方式,积极参与到课程的学习过程中,从而提高学生对课程内容的掌握程度。 此外,借助国家教学资源库的建设,可以为电气CAD课程提供更加丰富和高质量的教学资源...

    微信Android模块化架构重构实践.pdf

    重构往往需要对现有系统进行深入分析,发现瓶颈,并基于现有架构进行改进。 6. 模块生命周期的管理:在模块化架构中,正确管理各个模块的生命周期至关重要。文档中提到了模块在初始化、注销和退出时的生命周期问题...

    重构教学流程实现深度学习--以初中物理“空气的力量”为例.pdf

    重构教学流程要求教师具有广泛的知识储备和较高的物理思维能力,设计出能够激发学生思考和理解的教学方案。 在教学实践中,重构教学流程可以从几个方面入手。例如,通过合理安排课时,打破传统的教学顺序,将知识...

Global site tag (gtag.js) - Google Analytics