ときに再建 | どのように再構築します | ||
悪趣味のコード | 重複コード(コードの重複) | 再編成機能 | 抽出法(精製機能) |
ロング法(長すぎる機能) | インライン法(インライン) | ||
大きなクラス(大きすぎてAクラス) | インライン温度(一時的なインライン変数) | ||
長いパラメータリスト(パラメータリストが長すぎます) | (一時的な変数を置き換えるために、クエリ)クエリで温度を置き換え | ||
発散の変更(発散変動) | 変数(説明変数の導入)を説明紹介 | ||
ショットガン手術(散弾銃変性式) | スプリット一時的な変数(分解一時変数) | ||
フィーチャー羨望(別紙飢餓) | パラメータへの割り当てを削除(パラメータの割り当ての除去) | ||
データ塊(泥のパイデータ) | (機能置き換えるためにオブジェクト機能)メソッドオブジェクトとメソッドを置き換え | ||
プリミティブオブセッション(基本型パラノイド) | 代替アルゴリズム(置き換えアルゴリズム) | ||
switch文(出スリラースイッチ) | オブジェクト間の移動特性 | 移動法(移動機能) | |
平行InheritanceHierarchies(平行継承システム) | フィールド(移動フィールド)を移動 | ||
レイジークラス(冗長クラス) | 抽出クラス(抽象クラス) | ||
投機的一般性(大げさなフューチュリティ) | インラインクラス(インライン化クラス) | ||
一時的なフィールド(一時的なフィールドを混乱) | 隠す委任(非表示「信頼関係」) | ||
(メッセージのリンク連結を介して)メッセージチェーン | 削除仲介者(仲介の除去) | ||
ミドル・マン(仲介) | 外国法を紹介(組み込まプラス機能) | ||
不適切な親密(Xiani関係) | ローカル拡張(ローカルエクステンションの導入)を導入 | ||
(クラスに似ている)異なるインタフェースを持つ代替クラス | データを再編成 | 自己カプセル化フィールド(カプセル化フィールドから) | |
不完全なライブラリクラス(不完全なライブラリクラス) | (代わりに、オブジェクト内のデータ値の)オブジェクトを使用したデータ値を置き換えます | ||
データクラス(少年の純粋なデータクラス) | 参考まで変化値(オブジェクトを参照するように変更されたオブジェクトの値) | ||
拒否した遺産(レガシー拒否) | 値に変更リファレンス(オブジェクトの変更を参照されたオブジェクトの値) | ||
コメント(あまりにも多くのノート) | オブジェクト(オブジェクト置換配列)で配列を置き換えます | ||
重複観測データは、(コピー「は、データを監視し」) | |||
双方向への変更単方向協会(双方向の関連が双方向の関連付けを変更) | |||
単方向に変更双方向協会(双方向関連が一方向協会に変更されます) | |||
シンボル定数とマジックナンバーを交換してください(リテラルのマジックナンバーを交換します) | |||
カプセル化フィールド(フィールド・パッケージ) | |||
カプセル化コレクション(セットパッケージ) | |||
(置換のデータレコードクラスに)データクラスでレコードを置き換え | |||
クラスとタイプコード(置換のクラスの型コード)を交換 | |||
サブクラスに置き換えタイプコード(サブクラスへの置換型コード) | |||
置き換え州/戦略とタイプコード(国/戦略には、タイプコードを置換しました) | |||
フィールドを持つサブクラス(分野で置換サブクラス)を置き換えます | |||
簡素化された条件式 | Decompose Conditional(分解条件表达式) | ||
Consolidate Conditional Expression(合并条件表达式) | |||
Consolidate Duplicate Conditional Fragments(合并重复的条件片段) | |||
Remove Control Flag(移除控制标记) | |||
Replace Nested Conditional with Guard Clauses(以卫语句取代嵌套条件表达式) | |||
Replace Conditional with Polymorphism(以多态取代条件表达式) | |||
Introduce Null Object(引入Null对象) | |||
Introduce Assertion(引入断言) | |||
简化函数调用 | Rename Method(函数改名) | ||
Add Parameter(添加参数) | |||
Remove Parameter(移除参数) | |||
Separate Query from Modifier(将查询函数和修改函数分离) | |||
Parameterize Method(令函数携带参数) | |||
Replace Parameter with Explicit Methods(以明确函数取代参数) | |||
Preserve Whole Object(保持对象完整) | |||
Replace Parameter with Methods(以函数取代参数) | |||
Introduce Parameter Object(引入参数对象) | |||
Remove Setting Method(移除设值函数) | |||
Hide Method(隐藏函数) | |||
Replace Constructor with Factory Method(以工厂函数取代构造函数) | |||
Encapsulate Downcast(封装向下转型) | |||
Replace Error Code with Exception(以异常取代错误码) | |||
Replace Exception with Test(以测试取代异常) | |||
处理概括关系 | Pull Up Field(字段上移) | ||
Pull Up Method(函数上移) | |||
Pull Up Constructor Body(构造函数本体上移) | |||
Push Down Method(函数下移) | |||
Push Down Field(字段下移) | |||
Extract Subclass(提炼子类) | |||
Extract Superclass(提炼超类) | |||
Extract Interface(提炼接口) | |||
Collapse Hierarchy(折叠继承体系) | |||
Form Tem Plate Method(塑造模板函数) | |||
Replace Inheritance with Delegation(以委托取代继承) | |||
Replace Delegation with Inheritance(以继承取代委托) | |||
大型重构 | Tease Apart Inheritance(梳理并分解继承体系) | ||
Convert Procedural Design to Objects(将过程化设计转化为对象设计) | |||
Separate Domain from Presentation(将领域和表述/显示分离) | |||
Extract Hierarchy(提炼继承体系) |