システムアーキテクト暗記無料で始める

開放・閉鎖原則(OCP)とは?かいほう・へいさげんそく

開放・閉鎖原則(OCP)とは、機能の拡張に対しては開いており、既存コードの修正に対しては閉じているべきという設計原則。インタフェースや抽象クラスに依存させ、振る舞いの追加を実装クラスの追加で吸収することで、動いているコードへ手を入れずに済ませる。SOLID原則の一つ。

最終更新:2026-10-06

試験情報

システムアーキテクト試験の過去問では1回出題されています。

システムアーキテクト試験の頻出用語/午前II

別名:OCP、オープンクローズドの原則、開放・閉鎖原則、閉鎖原則

この語が出る過去問を解く →

背景

稼働中のシステムでは、既存コードへ手を入れるたびに回帰テストの範囲が広がり、変更コストの大半が検証に消える。要求は必ず増えるという前提に立つなら、増える部分をあらかじめ差し替え可能な形にしておくほうが安い——という判断がこの原則の根拠になる。どこを可変点として抽象化するかは設計者の見立てで、外すと無駄な抽象だけが残る。

具体例

決済処理を「決済手段」インタフェースで受けておけば、クレジットカードに加えてPayPayやコンビニ払いを扱うときも実装クラスを1本足すだけで注文側の呼出しコードは無変更で済み、既存機能の回帰テストも要らない。

試験での引っ掛け

「拡張に閉じ、修正に開く」と向きを入れ替えた選択肢が定番。加えて、あらゆる箇所を抽象化すれば守れるわけではなく、変わらない部分まで拡張点にすると読みにくさだけが増える。実際に変化する軸を見極めて適用する原則である点も押さえる。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では1回出題
  • 分野:午前II
  • 「拡張に閉じ、修正に開く」と向きを入れ替えた選択肢が定番。