■ Long Parameter List (長い引数リスト)
解決方法
* Introduce Parameter Object => 様々な場所で繰り返し利用される引数を、パラメータオブジェクトとして抽出する
■ Lazy Class (怠惰なクラス)
* 役割を持たない状態になっているクラス
解決方法
* Inline Class => 繰り返しリファクタリングをした結果、あるクラスの処理が殆どなくなってしまい、 クラスを分割しておく理由がなくなってしまった場合などに、クラスをインライン化する
■ Speculative Generality (不確かな一般性)
* 不確かで・本当に必要になるか分からない一般化(抽象化)がある状態
解決方法
* Remove Parameter => 必要なものは必要になってから追加した方が好ましい(※)ため、現状使われていない引数を削除する ※YAGNIhttp://blogs.yahoo.co.jp/dk521123/34022115.html
■ Alternative Classes with Different Interfaces (クラスのインターフェースの不一致)
解決方法
* Rename Method => 同じ目的にも関わらず、メソッド名が異なる場合は名前を揃える