开放和封闭的分层架构是什么意思?

时间:2009-05-24 17:35:11

标签: architecture modeling

我知道这可能听起来非常简单但我在互联网上找不到任何资源。

您能否告诉我什么是开放式和封闭式分层架构?为什么开放式分层架构显然更难以维护?使用封闭/开放分层架构有什么缺点吗?

2 个答案:

答案 0 :(得分:10)

封闭的分层架构意味着任何给定的层(或层)只能使用下一个直接层的服务,而在开放层架构中,给定层可以使用它下面的任何层(或层) 。封闭层架构通过减少依赖性来提高层之间的独立性。

http://books.google.com/books?id=z5XX4gYuMs0C&pg=PT160&lpg=PT160&dq=%22closed+layer+architecture%22&source=bl&ots=-iCw2be77_&sig=zQvScA2oIud_rNJNMziZXNMSnJo&hl=en&ei=u4UZSt7MKoX2tAOW-8jaCA&sa=X&oi=book_result&ct=result&resnum=5#PPT160,M1

答案 1 :(得分:1)

以下是Bob Martin开放式和封闭式架构的最早定义之一:

http://www.objectmentor.com/resources/articles/ocp.pdf

根据定义,开放式架构正在发生变化。它们难以维护,因为在设计API并预测每种可能的需求时很难看到它们的未来。但是,如果API保持不变,并且您已经设计了有效的机制来通过添加而不是重写进行修改(例如声明性配置,数据驱动的应用程序),那么开放式架构可能非常有效。

对于众所周知且相对静态的问题,封闭式架构没有任何问题。打开并不总是必要的。选择与性质和变化速度有关。