知识卡片
细化的开放语义与封闭语义
内容
细化关系需要向使用者说明”哪些新细节可以被引入”,靠开放或封闭语义传达这个承诺。开放语义允许细化引入任何新项(如给房屋加车库、加楼层都可以);封闭语义明确列出不能改变的项目类型,严格限制能引入的新内容,常见做法是已在低细节模型中显示的项目类型不能再添加同类型的新项目(如已画烟囱则不能再加烟囱,未画窗户则可任意加窗户)。原文给出明确指导:在软件架构中,最好遵循封闭语义,禁止添加新端口。
参考来源
- 位置:《恰如其分的软件架构》第13章《模型关系》13.7.1节《开放和封闭的细化语义》(源文件:_epub-src/OEBPS/text00135.html)
- 结论依据:原文对比开放语义与封闭语义的定义和效果,用房屋烟囱/窗户为例说明封闭语义的常见做法,并在图13.7图注中给出"软件架构中最好遵循封闭语义,禁止添加新端口"的明确建议。
- 原始内容:开放语义 在使用开放语义(open semantics)的细化时,细化可以引入任何新的项……封闭语义 与开放语义相反,封闭语义(closed semantics)通常会列出不能改变的项目类型,从而严格限制了可以被引入的新项目。……在软件架构中,最好遵循封闭语义,禁止添加新端口。