抽象化

詳細を隠蔽し本質だけを外部に公開する行為。

目的は関心の分離にあり、呼び出し側が実装の詳細を知らなくても済む状態を作ること。インターフェースの定義やレイヤー構造の導入が典型例。

共通化とは異なり、実装が一つしか存在しない場合でも有効。テスタビリティの確保や依存関係逆転の原則を適用する場合など。