知识卡片
架构抽象与编程语言对齐困境
内容
架构抽象与主流编程语言抽象尚未完全对齐,这不是缺陷而是工程演化的自然阶段。框架是典型特例:它给客户端暴露深而广的接口(常暴露内部实现细节),这与标准架构模型中端口”浅而窄、鼓励封装”的原则相悖,框架该建模为组件还是模块目前仍是学术界的开放课题。非面向对象语言(函数式/规则式/过程式)中很难直观想象运行时子组件划分;即使是OO语言,”适配器该做成对象还是组件”这类问题也没有现成答案。
参考来源
- 位置:《恰如其分的软件架构》第16章《结论》16.1.1节《架构抽象的适用性》(源文件:_epub-src/OEBPS/text00174.html)
- 结论依据:原文说明架构抽象与编程语言抽象未对齐是自然的工程现象,框架因深广接口暴露内部实现而与端口封装原则冲突,如何为框架建模仍是公开研究课题,并以适配器为例说明OO语言中架构抽象与对象抽象转换也会产生问题。
- 原始内容:框架是抽象不对齐的一个特例,因为客户端代码和框架之间的交互,与标准架构模型是不对齐的。……如何对框架进行精确建模是学术界一个公开的研究课题……即使使用面向对象语言,在架构抽象和对象抽象相互转换的过程中,也会有一些问题。