オープンクローズ原則(OCP)とは何ですか?

オープン/クローズド原則は、  ソフトウェア開発の世界で最も基本的な設計原則です。安定した柔軟なシステムを構築する方法をガイドします。

意味:

クラス、モジュール、関数などのソフトウェアエンティティは、拡張のために開いており、変更のために閉じている必要があります。

開閉の原則の意味は、変更を達成するために既存のコードを変更するのではなく、変更を達成するためにソフトウェアエンティティを拡張する必要があるということです。

開閉の原則は、ソフトウェアエンティティの将来の開発と設計を制限する原則です。

注:開閉の原則は、拡張のために開いており、変更のために閉じています。変更が行われないという意味ではありません。低レベルのモジュールでの変更は、高レベルのモジュールと組み合わせる必要があります。そうしないと、孤立した意味のないコードフラグメントになります。

開閉の原則の重要性:

  • テストに対する開始と終了の原則の影響

開閉の原則は、元のテストコードを引き続き正常に実行できるようにすることです。必要なのは、拡張コードをテストすることだけです。

  • 開閉の原理は再利用性を向上させることができます

オブジェクト指向設計では 、クラスにビジネスロジックを個別に実装するのではなく、すべてのロジックをアトミックロジックから結合します。この方法でのみ、コードを再利用できます。粒度が小さいほど、再利用される可能性が高くなります。

  • 開放および閉鎖原則は保守性を向上させることができます
  • オブジェクト指向の開発要件

開閉原理の使い方:

まず、インターフェースまたは抽象クラスを介した拡張を制限し、境界の拡張を制限し、インターフェースまたは抽象クラスに存在しないパブリックメソッドを許可しません。

次に、実装クラスの代わりに、パラメーター型と参照オブジェクトにインターフェースまたは抽象クラスを使用してみてください。

第三に、抽象化レイヤーは可能な限り安定した状態に保つ必要があります。確認されると、変更は許可されません。

変更のカプセル化には2つの意味があります。

まず、同じ変更をインターフェイスまたは抽象クラスにカプセル化します。

次に、さまざまな変更をさまざまなインターフェイスまたは抽象クラスにカプセル化します。2つの異なる変更が同じインターフェイスまたは抽象クラスに表示されないようにする必要があります。


例、手でドアを開閉します。

新たな要望があれば、引き出しを手で開閉する機能を高める必要があります。このコードでは、Drawerクラスを追加すると同時に、Handクラスを変更する必要があります。

OCPの開閉原理の例に従って、ドアを手動で開閉することはインターフェースに依存し、特定の実装クラスがこのインターフェースを実装します。

冷蔵庫を開閉するハンドの数を増やす必要がある場合、冷蔵庫クラスは、元のHandクラスとインターフェイスを変更せずにこのインターフェイスを実装します。

より多くのオブジェクト指向リソース

コメントを残す

メールアドレスが公開されることはありません。