smelles and refactoring

原创 2004年10月11日 15:24:00

整理了一下,有助于对代码进行refatoring。 

 
Smells Within Classes

 

smells

refactoring

 

Comments

 

 

Long Method

Extract Method.

 

 

Large Class

Extract Class

Extract Subclass

 

 

Long Parameter List

Replace Parameter with Method

Preserve Whole Object

Introduce Parameter Object.

 

 

 

 

 

 

Smells Between Classes

 

Smells category

smells

refactoring

Data

 

 

 

Primitive Obsession

Replace Data Value with Object

Replace Type Code with Class

Replace Type Code with Subclasses

 Replace Type Code with State/Strategy.

 

 

Data Class

 

 

Data Clump

Extract Class

Introduce Parameter Object

Preserve Whole Object

 

 

Temporary Field

Extract Class

Introduce Null Object

 

Inheritance

 

 

 

Refused Bequest

Push Down Method

Push Down Field

Replace Inheritance with Delegation

 

Inappropriate Intimacy (Subclass Form)

Self Encapsulate Field

Form Template Method

Replace Inheritance with Delegation

 

Lazy Class

Collapse Hierarchy

Inline Class

Responsibility

 

 

 

Feature Envy

Move Method

 

Inappropriate Intimacy (General Form)

Move Method and Move Field

Extract Class and Hide Delegate

Change Bidirectional Association to Unidirectional

 

 

Message Chains

Extract Method

Move Method

Hide Delegate

 

Middle Man

Remove Middle Man

Replace Delegation with Inheritance

Accommodating Change

 

 

 

Divergent Change

 

 

Shotgun Surgery

 

 

Parallel Inheritance Hierarchies

 

 

Combinatorial Explosion

 

Library Classes

 

 

 

Incomplete Library Class

 

 

 

 

 

VC++ 也有 Refactoring 功能了

Visual C++ team于去年年底的时候,终于放出了VC++的 Refactoring Extension了,太好了。不过目前这还只是刚开始,有以下局限: 仅限Visual St...
  • XinYaping
  • XinYaping
  • 2014年02月04日 14:00
  • 4656

重构模式(五)---- Refactoring和方法

           Refactoring不仅仅是一种编码的方法。他同时是一种设计方法。本文从软件工程学的演变来透视Refactoring的重要作用。同时,你也可以在这里看到Refactoring和...
  • casularm
  • casularm
  • 2004年10月23日 12:31
  • 1399

intellij idea小技巧

1.intellij idea重构变量名 intellij idea重构变量名 talking 为speaking 步骤如下: 1.在talking上 shift+F6 2.弹出对话框中 将talk...
  • wulong710
  • wulong710
  • 2015年03月21日 17:22
  • 772

CScout: A Refactoring Browser for C

CScout: A Refactoring Browser for C Diomidis Spinellis Athens University of Economics and Busine...
  • gxp
  • gxp
  • 2012年03月28日 11:01
  • 2519

《Refactoring-Improving the Design of Existing Code》读书笔记

重构的目的是让可以工作的代码更好,使面向对象的代码更简单,更容易维护。书上还说,所有的程序员应当能使用重构技术改进他们的代码。   nuts-and-bolts n.具体细节   前言   ...
  • backard
  • backard
  • 2013年01月27日 23:53
  • 320

CScout: The C Refactoring Browser

CScout: The C Refactoring Browser CScout is a source code analyzer and refactoring browser forcolle...
  • gxp
  • gxp
  • 2012年03月28日 10:01
  • 667

Codeforces Gym 101190 (NEERC 2016) H. Hard Refactoring (模拟 + 树状数组)

H - Hard Refactoring题意Helen had come upon a piece of code that uses a lot of “magical constants”. Sh...
  • DorMOUSENone
  • DorMOUSENone
  • 2017年06月25日 10:30
  • 579

php-refactoring-browser, PHP的命令行 重构工具

php-refactoring-browser, PHP的命令行 重构工具 源代码名称:php-refactoring-browser源代码网址:http://www.github.com/...
  • dowemo
  • dowemo
  • 2017年11月24日 16:49
  • 74

走出重构(Refactoring)的误区

一、什么是重构? 重构(Refactoring)这个词最初由Martin Fowler 和 Kent Beck给下的定义,它是 一种修改,使软件的内部结构更容易理解,在不改变软...
  • a511596982
  • a511596982
  • 2012年12月16日 12:27
  • 4574

Refactoring 网站

http://sourcemaking.com/refactoring
  • just_white
  • just_white
  • 2013年05月06日 23:30
  • 391
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:smelles and refactoring
举报原因:
原因补充:

(最多只允许输入30个字)