非常に些細な質問に聞こえるかもしれませんが、インターネット上でリソースを見つけることができませんでした。
オープン レイヤード アーキテクチャとクローズド レイヤード アーキテクチャとは何か、オープン レイヤード アーキテクチャの保守が明らかに難しい理由を教えてください。クローズド/オープン レイヤード アーキテクチャを使用することの欠点はありますか?
非常に些細な質問に聞こえるかもしれませんが、インターネット上でリソースを見つけることができませんでした。
オープン レイヤード アーキテクチャとクローズド レイヤード アーキテクチャとは何か、オープン レイヤード アーキテクチャの保守が明らかに難しい理由を教えてください。クローズド/オープン レイヤード アーキテクチャを使用することの欠点はありますか?
クローズド レイヤード アーキテクチャとは、特定のレイヤー (または層) がすぐ下のレイヤーのサービスのみを使用できることを意味します。一方、オープン レイヤー アーキテクチャーでは、特定のレイヤーはその下のレイヤー (または層) のいずれかを使用できます。クローズド レイヤー アーキテクチャは、依存関係を減らすことでレイヤー間の独立性を促進します。
Bob Martin によるオープン アーキテクチャとクローズド アーキテクチャの初期の定義の 1 つを次に示します。
http://www.objectmentor.com/resources/articles/ocp.pdf
定義上、オープン アーキテクチャは変化しています。API を設計する際に将来を見据え、考えられるすべてのニーズを予測するのは難しいため、維持するのは困難です。しかし、API が一定のままで、書き換えではなく追加によって変更するための効果的なメカニズムを設計した場合 (宣言型構成、データ駆動型アプリケーションなど)、オープン アーキテクチャは非常に効果的です。
よく知られている比較的静的な問題については、クローズド アーキテクチャを使用しても問題はありません。オープンは必ずしも必要ではありません。選択は、変化の性質と速度に関係しています。