许多编程语言和框架都会/允许/需要一些我似乎无法找到名称的东西,即使计算机科学中可能存在一个.他们基本上做的是按名称绑定到变量/对象/类/函数.
Flex示例(“selectAll()”):
<mx:Button click="selectAll()" label="Select All"/>
Mate示例(“价格”):
<Injectors target="{QuotePanel}"> <PropertyInjector targetKey="price" source="{QuoteManager}" sourceKey="currentPrice" /> </Injectors>
Java示例(“Foo”):
Class.forName("Foo")
还有很多其他的例子.你明白了.令我感到困扰的是,在编译时几乎没有办法验证这一点,并且IDE在代码完成,导航和重构方面无法提供帮助.但这不仅仅是重点.
我的问题是,这叫什么?我不认为这是其中之一:dynamic binding,name binding,reflection
更新:不,这不是一个测验,对不起,如果它听起来像一个.这只是编程的“名字那首歌”.
更新:有帮助的答案:
>来自Tim Lesher:它被称为“后期绑定”,“动态绑定”或“运行时绑定”.它通过字符串绑定的事实只是一个实现细节……
>来自康拉德鲁道夫:……这只是口译员的输入.
更新:正如人们正确指出的那样,一些例子是后期绑定,一些是反射,一些是运行时评估(解释)等.但是,我得出结论,可能没有描述它们的名称.这只是一堆确实有共同点的例子,但还不足以给它起个名字.我喜欢“一切都是字符串”的答案,但即使它很有趣,它也不完全正义.