`
jianchen
  • 浏览: 343049 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

重构的原则

阅读更多

在对一个继承的等级结构做重构时,一个应当遵从的原则便是将行为尽量移动到结构的高端,而将状态尽量移动到结构的低端。

1995年,Auer曾在文献【AUER95】中指出:

  1. 应当根据行为而不是状态定义一个类。也就是说,一个类的实现首先建立在行为的基础之上,而不是建立在状态的基础之上。
  2. 在实现行为时,是用抽象状态而不是用具体状态。如果一个行为涉及到对象的状态时,使用间接的引用而不是直接的引用。换言之,应当使用取值方法而不是直接引用属性。
  3. 给操作划分层次。一个类的行为应当放到一个小组核心方法(Kernel Methods)里面,这些方法可以很方便地在子类中加以置换。
  4.  将状态属性的确认推迟到子类中。不要在抽象类中过早地声明属性变量,应将它们尽量地推迟到子类中去声明。在抽象超类中,如果需要状态属性的话,可以调用抽象的取值方法,而将抽象的取值方法的实现放到具体子类中。
分享到:
评论

相关推荐

    软件重构技术(重构介绍、重构原则、代码的坏味道。。。)

    重构,正如标题所言,包括了“重构介绍”、“重构原则”以及“代码的坏味道”等多个方面,旨在提高代码的可读性、可维护性和整体质量。 首先,我们来探讨“重构介绍”。重构是一种系统性的修改现有代码的过程,目的...

    软件工程中的软件设计与重构原则.pptx

    ### 软件工程中的软件设计与重构原则 #### 第一章:软件设计原则 **1.1 什么是软件设计原则** 软件设计原则是指导软件设计过程中的准则和规范,旨在帮助开发者创建出高质量、易维护且具备良好扩展性的软件系统。...

    重构 中英双版

    2. **重构原则**:介绍了重构的基本原则,如小步前进、保持代码可测试、避免大规模更改等,这些原则旨在降低风险并确保重构过程的可控性。 3. **重构模式**:书中列举了大量具体的重构模式,每个模式都有一个清晰的...

    系统重构.pdf 侯捷

    ### 系统重构的核心知识点 ...通过遵循一定的原则和方法,可以有效地降低重构过程中的风险,并确保重构活动的成功实施。对于软件开发者来说,掌握重构技术是一项重要的技能,有助于提高工作效率和产品质量。

    数据库重构.rar

    3. 重构原则: - 不改变外部行为:重构不应影响到应用程序的功能,保持与现有接口的兼容性。 - 小步快跑:每次只做小范围的修改,便于回滚和测试。 - 充分测试:重构前后都需要进行详尽的测试,确保数据完整性和...

    重构中的源码,可能对照重构的书籍进行阅读

    在实际学习过程中,我们可以打开这些文件,逐一分析其中的Java代码,尝试找出可以重构的地方,然后按照重构原则进行改造,以提高代码质量。 总的来说,通过结合理论学习和实际操作,开发者可以更深入地理解重构的...

    【分享】部门内部《重构》培训

    3. **重构的原则**:讲解马丁·福勒的重构原则,如小步前进、保证每次改动都通过测试等。 4. **重构模式**:列出一些常见的重构模式,如提取方法、替换条件为函数、移除重复代码等,每个模式都有其适用场景和好处。...

    Java重构示例一.docx

    在本文中,我们将深入探讨四个常见的重构原则和技术,这些技术可以帮助开发人员优化他们的Java代码。 首先,我们关注的是保持代码简洁。一个经典的例子是消除冗余条件语句。重构前的代码可能会包含if-else结构,如...

    重构英文版

    3. **重构原则**:在进行重构时,必须遵循持续集成、小步快跑的原则,每次只改变一小部分代码,并确保每次改动后都能通过所有测试,以防止引入新的错误。 4. **重构的步骤**:通常包括识别坏味道的代码(如过长方法...

    重构-改善既有代码的设计(chm清晰版)

    章节二 重构原则 章节三 代码的坏味道 章节四 构筑测试体系 章节五 重构名录 章节六 重新组织你的函数 章节七 在对象之间搬移特性 章节八 重新组织数据 章节九 简化条件表达式 章节十 简化函数调用 章节十一 处理...

    SQL应用重构 PDF

    2. **SQL重构原则** - **可读性**:重构的目标之一是提高代码的可读性,书中会强调如何编写清晰、易懂的SQL语句,使其他开发者能更容易地理解并维护。 - **可维护性**:重构有助于减少代码冗余,提高代码的可维护...

    重构:改善既有代码的设计/福勒(Martin Fowler)

    2. **重构原则**:首先,重构应以小步骤进行,每次改动只影响一小部分代码,这样可以减少出错的可能性。其次,重构必须配合自动化测试,确保每次改动后软件的行为未受影响。最后,重构应持续进行,不应等到问题积累...

    java代码重构经验总结

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

    PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数

    在日常开发中,关注重构原则,合理地安排重构的时机,以及采用恰当的重构方法,都是提高代码质量、降低维护成本的重要手段。同时,良好的编码习惯和对专业术语的掌握,也是提升个人技术水平和团队协作效率的关键因素...

    重构-改善既有代码的设计

    第2章 重构原则 53 2.1 何谓重构 53 2.2 为何重构 55 2.3 何时重构 57 2.4 怎么对经理说 60 2.5 重构的难题 62 2.6 重构与设计 66 2.7 重构与性能 69 2.8 重构起源何处 71 第3章 代码的坏味道 75...

    重构mvc实现struts框架

    3. **重构技巧**:如何识别和改进代码的坏味道,以及应用重构原则,如提取方法、替换条件为策略等。 4. **Struts框架原理**:Action、Form Bean、Action Mapping、Request Processor等核心概念。 5. **Struts与MVC的...

    重构教科书讲解ppt

    以下将详细解释其中提到的一些重构原则和技巧: 1. **过长参数列 (Long Parameter List)** - **问题**:函数接收过多的参数,这使得函数变得难以理解和使用,且不利于后续的扩展。 - **解决办法**:将这些参数...

    Java重构示例五.pdf

    总结来说,这个重构示例展示了以下几个重要的重构原则和技术: 1. **封装变化**:将变化的部分(如排序方式)封装到单独的类中,使其独立于其他代码。 2. **使用有意义的命名**:将整数值替换为具有描述性的枚举,...

Global site tag (gtag.js) - Google Analytics