リファクタリング 不吉な臭いに関するツィートまとめ④


リファクタリング 不吉な臭いに関するツィートまとめ①
リファクタリング 不吉な臭いに関するツィートまとめ②
リファクタリング 不吉な臭いに関するツィートまとめ③

続きです。。。

#refactoring 不吉な臭い⑭「一時的属性」・・・インスタンス変数の値が特定の状況でしか設定されない。「isNull」などの属性がいい例。対処策は「クラスの抽出」「ヌルオブジェクトの導入」。Specializeなクラスにする。
@pilgrim_reds
木目沢康廣

#refactoring 不吉な臭い⑮「メッセージの連鎖」・・・「get×××.get○○○.get△△△」という状況。対処策は「委譲の隠蔽」「メソッドの移動」。
@pilgrim_reds
木目沢康廣

#refactoring 不吉な臭い⑯「仲介人」・・・大半が委譲しているだけのクラス。対処策は「仲介人の除去」「メソッドのインライン化」。
@pilgrim_reds
木目沢康廣

#refactoring 不吉な臭い⑰「不適切な関係」・・・例)「Aクラス」を利用するのに「Bクラス」のフィールドを知らないと使えない。あるクラスを利用するのにあるAPIを必ず使わないといけない・・・など 対処策)「メソッドの移動」「フィールドの移動」
@pilgrim_reds
木目沢康廣

#refactoring 不吉な臭い⑱「クラスのインタフェース不一致」・・・似た処理をしているのにメソッド名などが違う。  引数のみが異なるメソッドは「メソッド名の変更」。また「メソッドの移動」でインタフェイスを合わせる。「インタフェイスの抽出」やコンポジションの利用も有効。
@pilgrim_reds
木目沢康廣

#refactoring 不吉な臭い⑲「未熟なクラスライブラリ」・・・クラスを全くいじれないならデコレートパターンやアダプタパターンなどが使えるが、修正できるクラスならクラスを修正する。
@pilgrim_reds
木目沢康廣

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です