技術向上

プログラミングの学び、気になるテクノロジーやビジネストレンドを発信

case: 巨大なクラス【リファクタリング】

1つのクラスがあまりに多くの仕事をこなしている場合は、大抵、インスタンス変数の持ちすぎになっています。
インスタンス変数が多すぎると、重複したコードが生まれやすくもなります。

まず「クラスの抽出」を適用して、いくつかの変数をまとめます。ポイントは変数の接頭辞や接尾辞に注目することです。名称に共通の部分をもつ変数は一つのコンポーネントにまとめるべきかもしれません。
新しくできたコンポーネントからサブクラスを作れそうな場合は「サブクラスの抽出」を実施します。

クラスがインスタンス変数を全て使っていないことが散見される場合は、「クラスの抽出」と「サブクラスの抽出」の適用を何度か行います。
重複した処理に対しては「メソッドの抽出」を行い、コード量を減らしていきます。コード量の削減には「クラスの抽出」、「サブクラスの抽出」も有効です。
また、「インターフェースの抽出」を行うことで、新たなクラス分割のアイデアが浮かぶこともあります。


クラスの抽出【リファクタリング】 - 技術向上

サブクラスの抽出【リファクタリング】 - 技術向上

case: コードの重複【リファクタリング】 - 技術向上

インターフェースの抽出【リファクタリング】 - 技術向上