大型重构的重要性
大型重构没有那些小动作那样立竿见影的效果,不过它可以帮助我们解决那些堆积了很久,影响范围又很大的问题。
Tease Apart Inheritance
(梳理并分解继承体系)
用于处理混乱的继承体系——这种继承体系往往以一种令人迷惑的方式组合了数个不同方面的变化(
variations
)。
某个继承体系(
inheritance hierarchy
)同时承担两项责任。
建立两个继承体系,并通过委托关系(
delegation
)让其中一个可以调用另一个。
Convert Procedural Design to Object
(将过程化设计转化为对象设计)
可以帮助你解决一个「古典」问题:如何处理程序性代码(
procedural code
)?
你手上有一些代码,以传统的过程化风格(
procedural style
)写就。
将数据记录(
data records
)变成对象,将行为分开,并将行为移入相关对象之中。
Separate Domain from Presentation
(将领域和表述
/
显示分离)
将业务逻辑(
business logic
)与用户界面(
user interface
)隔离开来。
某些
GUI class
之中包含了
domain logic
(领域逻辑)。
将
domain logic
(领域逻辑)分离出来,为它们建立独立的
domain class
。
Extract Hierarchy
(提炼继承体系)
则可以将过于复杂的
class
转变为一群
subclass
,从而简化系统。
你有某个
class
做了太多(过多)工作,其中一部分工作是以大量条件式完成的。
建立继承体系,以一个
subclass
表示一种特殊情况。
分享到:
相关推荐
通过对以上案例的学习,我们不仅了解了重构的基本原则和实践方法,还深入探讨了如何通过具体的编码技巧来提高代码质量和系统的整体性能。这些知识对于每一位软件工程师而言都是非常宝贵的,无论是初学者还是资深...
重构是软件开发过程中的一个重要环节,它涉及到对现有代码的改进,目的是为了提高代码的可读性、可维护性和设计质量,而不改变其外部行为。本文主要围绕重构的关键概念、原则、时机以及面临的挑战展开讨论。 首先,...
.NET 快速重构学习笔记是针对开发者提升代码质量和可维护性的重要指南。重构是一个系统性的过程,旨在改善软件设计,优化代码结构,而不改变其外在行为。在.NET开发环境中,重构是不可或缺的技能,它可以帮助开发者...
《31天重构系列笔记》是一本专注于C#编程语言重构技术的教程,该资源以免费高清PDF的形式提供。重构是软件开发过程中的一种重要实践,它旨在改进代码结构,提高可读性和可维护性,而不会改变外部行为。在31天的时间...
本文主要讨论了如何通过重构来优化代码,避免将集合的全部操作暴露给调用者,以提高代码的安全性和可维护性。 在原始代码中,`Order` 类公开了一个 `IList<OrderLine>` 类型的属性 `OrderLines`,这允许外部代码对...
《重构》是一本深入探讨软件开发过程中的代码优化与改进的经典著作。重构,简单来说,是在不改变软件外部行为的前提下,对其内部结构进行改进,以提高代码的可读性、可维护性和可扩展性。这一过程并非依赖于个人天赋...
### Eclipse开发学习笔记知识点解析 #### 一、Eclipse工作台(Workbench) Eclipse工作台是Eclipse提供的集成开发环境的核心部分,旨在为开发者创建一个无缝集成的工具集,以便于管理和导航工作空间资源。它是开发...
《JSP & Servlet学习笔记(第2版)》是作者多年来教学实践经验的总结,...《JSP & Servlet学习笔记(第2版)》以“微博”项目贯穿全书,将JSP & Servlet技术应用于实际项目开发之中,并使用重构方式来改进应用程序架构。
**Eclipse 开发学习笔记** Eclipse是一款强大的集成开发环境(IDE),主要用于Java应用程序的开发,但通过插件也可以支持其他编程语言,如C++, Python等。这份《Eclipse开发学习笔记》是针对想要深入理解和掌握...
5. **日期与时间API(java.time)**:JDK 8对日期和时间API进行了彻底的重构,用`java.time`包取代了`java.util.Date`和`java.util.Calendar`。新API更加直观、易用,支持时区处理,以及日期、时间的计算和格式化。 ...
《重构笔记》主要探讨的是软件开发过程中的一个重要实践——重构,它是提高代码质量、可维护性和...通过深入阅读这份文档,开发者可以学习如何在实践中提升自己的重构能力,从而打造出更加优雅、易于维护的软件系统。
- "31天重构学习笔记"可能提供了每日重构技巧和案例,帮助深入理解重构过程。 - "Java重构示例"系列文档可能展示了Java代码重构的具体步骤和实践。 - "SVN搭建和使用手册"及"SVN中文教程"提供了关于SVN的详细指南...
### Spring Boot 学习笔记概览 #### 一、Spring 的发展历程 1. **Spring 1.x 时代:** - 在Spring框架发展的初期(即Spring 1.x时代),主要采用XML作为配置文件来管理Bean的声明周期。这种方式在项目规模较小的...
### ActiveMQ学习笔记知识点梳理 #### 一、ActiveMQ简介 **定义:** - **ActiveMQ**是由Apache出品的一款功能强大的开源消息中间件。作为消息队列(Message Queue,简称MQ)的一种,它主要用来在分布式系统之间...
《重构:改善既有代码的设计(第2版)》是一本由马丁·福勒(Martin Fowler)编著的经典软件工程书籍,...通过学习和实践书中的重构技巧,我们可以更好地理解和改善我们的代码,从而创造出更加健壮、可维护的软件系统。
前端Bootstrap+Es6+vue学习笔记 Bootstrap 框架是一种基于 HTML/CSS/JS 的开源框架,由 Twitter 公司的两名技术工程师研发。其主要特点包括: 1. 跨设备跨浏览器:Bootstrap 支持多种设备和浏览器,可以在不同的...
这篇学习笔记将引导新手入门,通过创建第一个简单的案例来了解Android Studio的基本操作。 首先,让我们了解一下Android Studio的核心功能。它基于IntelliJ IDEA,具备代码自动补全、重构、调试等强大的开发特性。...
### PeopleCode学习笔记知识点概述 #### 一、PeopleCode简介 PeopleCode是PeopleSoft系统中的一个集成编程语言,主要用于自定义应用逻辑与处理流程。它为开发者提供了强大的工具集来扩展和修改现有的PeopleSoft应用...