抽象化とインタフェースとは?ちゅうしょうかといんたふぇーす
抽象化とインタフェースとは、実装の詳細を隠し、外から見た呼び出し方だけを契約として定める考え方と、その契約だけを記述する仕組み。方式設計では抽象化の層をどこに何枚置くかの判断になり、層を挟めば実装の差し替えとテスト時の置き換えが効く代わりに、追う先が増えて読解と障害切り分けのコストが上がる。
最終更新:2026-10-06
システムアーキテクトを最短で暗記・合格する →背景
呼び出す側と呼ばれる側が実装の細部で結び付いていると、片方の都合の変更がそのまま他方を壊す。インタフェースはその結び付きを契約の範囲だけに限定するために置かれる。ただし抽象化は「ここが将来変わる」という予想への賭けでもあり、交換の見込みが低い箇所へ挟めば、得られる柔軟性より払う複雑さが勝つ。SAの論述では、なぜそこに契約を切ったのかを変更の見込み(製品の入替え、法改正で変わる計算ロジック、マルチテナント化)で説明できるかが要点になる。
具体例
JDBC は Connection や PreparedStatement という契約だけを定め、Oracle・PostgreSQL・MySQL の各ドライバがそれを実装する。だからDBMSを替えても呼び出し側は原則そのままでよく、代わりに各製品固有の機能は契約の外へ出るため使えなくなる。
試験での引っ掛け
インタフェースは「何ができるか」の仕様だけを定めて実装を持たず、実装を一部持てる抽象クラスとは区別される。クラスの多重継承が制限される言語でも、インタフェースは複数実装できることが多い。情報隠蔽そのものを指すカプセル化とも別概念で、抽象化は「何を見せないか」を決める側にあたる。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。