摘要
在Ruby和Smalltalk等编程语言中,经常使用开放类来添加或更改在同一组件或不同组件中定义的类的方法。它们通常用于错误修复、关注点的多维分离,或模块化地向现有类添加新操作。然而,如果全局可见,它们就会受到模块化问题的影响:使用相同类的其他组件随后会受到其修改的影响。本作品呈现扩展类,一种在Ruby中动态确定此类修改范围的分层方法,建立在面向上下文编程(COP)的思想之上。我们的机制组织类中的修改,并允许程序员根据类嵌套层次结构和程序员是否将受影响的类视为黑盒来定义其范围。此外,扩展类支持将修改模块化为mixin,以便可以在其他组件中重用。