重构--提取方法

提取方法是最常用的重构之一。当一个方法看起来太长或者方法中一些代码需要注释才能明白它的目的时,可以考虑把它们提取出来作为一个独立的方法。如:

void PrintOwing()
{
  double outstanding = 0;

  //print banner
  Console.WriteLine("**********");
  Console.WriteLine("***Owes***");
  Console.WriteLine("**********");
  //Calculate outstanding
  foreach(Order o in orders)
  {
    outstanding += o.Amount;
  }

  //print details
  Console.WriteLine("Name: " + name);
  Console.WriteLine("Amount: " + outstanding);
}

通过提取方法,重构后代码如下

void PrintOwing()
{
  PrintBanner();
  outstanding = GetOutStanding();
  PrintDetails(outstanding);
}
void PrintBanner()
{
  Console.WriteLine("**********");
  Console.WriteLine("***Owes***");
  Console.WriteLine("**********");
}
void PrintDetails(int outstanding)
{
  Console.WriteLine("Name: " + name);
  Console.WriteLine("Amount: " + outstanding);
}

int GetOutStanding()
{
  double result = 0;

  foreach(Order o in orders)
  {
     result += o.Amount;
  }

  return result;
}

经过重构后,代码看上去清爽多了。提取方法还可以提高代码的重用性,提高代码的模块化程度。

时间: 2024-08-03 04:44:51

重构--提取方法的相关文章

Visual C# 2005快速入门之编写方法

visual|快速入门 在下面的练习中,将创建一个应用程序,它包含的一个方法能够计算一名顾问的收费金额--假定该顾问每天收取固定的费用,将根据工作了多少天来收费.首先要开发应用程序的逻辑,然后利用"生成方法存根向导"来写出这个逻辑使用的方法.接着,我们将在一个控制台应用程序中运行方法,以获得对该程序的最终印象.最后,我们将使用Visual Studio 2005调试器来检查方法调用. 开发应用程序逻辑 1. 在Visual Studio 2005中打开My Documents文件夹下的

VS2012中的全部预定义键盘快捷键列表

原文 http://www.elanblog.com/2013/05/14/vs2012-key-list/#sectionToggle7 Visual Studio 集成开发环境 (IDE) 包括若干预定义的键盘快捷键方案. 当您首次启动 Visual Studio 并选择设置时,将会自动设置关联的方案. 之后,通过使用"选项"对话框中的键盘选项页,您可以从其他方案中进行选择,也可以创建您自己的键盘快捷键. 本主题显示与 .NET Framework 开发和 Web 开发相关的键盘快

.NET中方法的注意事项总结_实用技巧

本文较为详细的总结了.NET中方法的注意事项.分享给大家供大家参考.具体分析如下: 1. 方法中return 会终止整个方法段. 而break只能终止当前循环. 2. 方法就是一对可用代码的复用. a . 对于可重用的代码,在vs中选中,右键  重构  提取方法.即可自动封装成一个方法. b . 编程中,当我们调用的一个未定义的方法. Ctrl + . 然后Enter.会自动生成相应的方法. 3. 对于方法返回值,如果定义了返回值,方法中必须有对应的return. 没有返回值得方法可以用void

C#编写方法实例_Mysql

  开发应用程序逻辑 1. 在Visual Studio 2005中打开My Documents文件夹下的\Microsoft Press\Visual CSharp Step by Step\Chapter 3\DailyRate子文件夹中的DailyRate项目. 2. 在"解决方案资源管理器"中,双击Program.cs文件,以便在"代码和文本编辑器"窗口中显示程序. 3. 在run方法主体中添加以下语句: double dailyRate = readDou

iOS 遗留系统重构实践

在过去的几个月内,我主导着团队完成了一项工程浩大(累积八个人月的工作量)的重构工作--为我们的App替换数据库.之所以能够把这种伤筋动骨的事情称之为重构,是因为在这段时间内,我们每天向主干合并两到三次代码,期间App上线五次,用户没有感知到任何影响.在这篇文章中,我将讲述我们如何在不影响系统外部行为,也不影响正常交付的情况下,替换掉了数据库实现. 背景 在一个有着良好分层结构的系统中,每一层都有它自己的职责:显示层负责响应用户事件,调用业务层的逻辑,最后做数据呈现:业务逻辑层负责业务规则与数据处

6 个重构方法可帮你提升 80% 的代码质量(转)

英文原文:Top 6 Refactoring Patterns to Help You Score 80% in Code Quality 在过去做了不少代码走读,发现了一些代码质量上比较普遍的问题,以下是其中的前五名: 臃肿的类: 类之所以会臃肿,是因为开发者缺乏对最基本的编码原则,即"单一职责原则"(SRP)的理解.这些类往往会变得很臃肿,是由于不同的且在功能上缺少关联的方法都放在了相同的类里面. 长方法: 方法之所以会变得很长主要是有以下几个原因: 许多没有关联性的.功能复杂的模

《圣殿祭司的ASP.NET4.0专家技术手册》----1-10 程序代码重构

1-10 程序代码重构 圣殿祭司的ASP.NET4.0专家技术手册 所谓重构(Refactoring),是指对软件程序进行重新改写或调配,那干嘛不直接叫Rewrite?意义当然不一样,因为Rewrite只是单纯地改写,不一定有什么了不得的意义,而重构是含有目的性的改写,或重新优化整个程序架构,其中甚至有"方法论"在里头,也就是有许多程序方法学的指导性方针,"重构"一词其实存在软件界已久,而Java的Eclipse或NetBeans开发工具对"重构"

eclipse重构详解(转)

  重构是对软件内部结构的一种调整,目的是在不改变软件行为的前提下,提高其可理解性,降低其修改成本.开发人员可以使用一系列重构准则,在不改变软件行为的前提下,调整软件的结构. 有很多种原因,开发人员应该重构代码,例如之前的开发人员代码写得很烂.自己以前设计时有缺陷.需求变更需要添加一些新的功能或修改原有功能等等.Martin Fowler在其著名的<<Refactoring-Improving the Design of Existing Code>>一书中谈到了为何重构的几点原因

代码重构——程序员应有的基因

去年帮另一个项目组赶项目时,总是有很多地方令我不舒服.本人编码有点小小的"洁癖"--即不喜欢见到冗余代码.即时现在忙,没时间整理,但是一有时间,我都尽可能的去重构.也许本人是个完美主义者吧. 个人认为重构有以下好处: 改善软件的性能.质量. 使架构更加合理. 使代码更容易被理解. 提高软件的扩展性和可维护性. 提高代码的重用率,通用性. 提高软件的开发速度. 更容易发现BUG. 可以提高开发人员的开发水平. 在我见过的很多代码中,很多程序员宁愿无限复制粘贴代码,也不愿意重构代码.比如经