共通化

重複したコードを一箇所にまとめる行為。DRY原則の文脈で語られることが多い。

抽象化とは本質的に異なる概念。共通化は必ずしも抽象化を伴わない。複数のクラスから同一のユーティリティメソッドを呼び出す場合、それは共通化ではあるが抽象化とは言えない。

過剰な共通化の危険性

たまたま現時点でコードが類似しているだけの二つの処理を無理に共通化すると、後に一方だけ仕様変更が発生した際に問題を引き起こす。本来異なる変更理由を持つものを一つにまとめてしまうことが原因。

共通化の判断基準