面向特征的语言模型与DSL可变性显式化解析
1. 面向特征的语言模型挑战与应对
在基于分层协作设计的面向对象分解中,会面临一些挑战,以下详细介绍并阐述对应的解决思路。
- 避免分解不匹配 :在基于协作的语言模型实例化中,协作及其部分由不同的运行时对象表示。对于客户端而言,复杂协作的部分形成单个运行时实体,直接访问的是组合的、最细化的边类型,它会沿着细化链将客户端消息转发给边对象。这种分解不匹配可能在方法组合和转发时导致问题,甚至使转发意外中断。
- 组合局部性 :在组合协作(如加权图)上及其内部的关键操作(如对象构造期间的消息发送)应局限于该组合协作。组合协作为构造函数调用等设置上下文。对于任何给定的特征组合,对象构造应采用特定于组合的协作角色细化,而非最通用的形式。类层次结构和方法查找顺序也应遵循此原则。
- 产品有界量化 :在特征导向编程和软件组合中,量化指的是在程序结构上评估选择谓词,以匹配代码单元进行转换、编织和拦截操作。在动态特征绑定中,可以同时创建多个产品和产品实例。重新配置选定产品时,需通过可定制的量化语句保留其余产品的特征组合。无界量化可能导致不必要的交互。
- 宿主语言融合 :特征组合步骤产生的语言模型实现应能直接在宿主语言编写的原生应用中使用。必须控制FOP基础设施与用于实现它的宿主语言特性之间的不必要交互。例如,派生产品由嵌套类实现的协作结构表示时,这些类应能通过原生子类化进行细化,同时不破坏协作语义。
2. DjDSL基础设施实现
DjDSL提供了用于可变语言模型
超级会员免费看
订阅专栏 解锁全文
1342

被折叠的 条评论
为什么被折叠?



