很多编程语言和框架做/允许的/需要的东西,我好像找不到的名称,即使有可能是一项在计算机科学。什么他们基本上做的是结合一个可变的/目的/类/职能的名字。

Flex 例("全选()"):

<mx:Button click="selectAll()" label="Select All"/>

伴侣 例("价格"):

<Injectors target="{QuotePanel}">
  <PropertyInjector targetKey="price" source="{QuoteManager}" sourceKey="currentPrice" />
</Injectors>

Java例("Foo"):

Class.forName("Foo")

还有许多其他的例子。你的想法。什么麻烦我的是,几乎没有任何方法来验证这在编制时,并没有多少IDE可以做些什么来帮助在完成代码,导航和重构。但是这一点。

我的问题是,这是什么? 我不认为这是这个: 动态结合, 名称的结合, 反射

更新:不,这不是一个测验,很抱歉,如果这听起来像一个。这是一个简单的问题"名称的那首歌"进行编程。

更新:答案,帮助:

  • 从蒂姆莱舍:这就是所谓"迟到结合","动态结合",或"运行时具有约束力". 事实上,它结合通过一个字符串仅仅是一个执行情况的细节...
  • 从康拉德*鲁道夫:...它只是输入一个解释.

更新:正如人们已经正确地指出,一些例子是迟到结合、一些反映,有些是运行时评估(解释),等等。然而,我的结论也有可能是没有名字,介绍他们所有。它只是一堆的例子,确实有一些共同点,但是不足以给它一个名称。我喜欢"一切都是一串"的答案,但即使它很有趣,它不完全做到公正。

有帮助吗?

解决方案

这就是所谓"迟到结合","动态结合",或"运行时具有约束力".事实上,它结合通过一个字符串仅仅是一个执行情况的细节,尽管它不意味着串到的符号映存在运行时间(其中有些语言、c++、不提供).

"反省"或"反射",另一方面,请参考的能力,以找出什么样的接口、方法或属性的一个目实现了在运行时间。

这是真的,动态束缚的符号不能证实之前执行;这是什么使得他们不同,从静态定的符号。

其他提示

迟到结合

是什么让你认为 Class.forName 不是反射?

反射

Flex的事情可以被称为延迟结合,如果这样工作的正常html。直到用户的点击按钮的运行时不要打扰找到,如果功能存在与否。第二件事是依赖关系注入,其中涉及功能指(通过方式的接口)和反思。Java个人是绝对反射。

我想可能是你们不够的话你的问题正常,或者选择了糟糕的例子来说明你的思想。

晚具有约束力?

第二和第三个例子是例子反射或者迟到约束力,但第一个例子是没有的。

<mx:Button click="selectAll()" label="Select All"/>

改写为ActionScript之前汇编, selectAll() 部分正在塞内部的一个事件处理程序功能。这样的事情(如何,这样做是完全可以检查通过加入 -keep-generated-actionscript 编译器的标志):

_button1 = new Button();
_button1.label = "Select All";
_button1.addEventListener("click", function( event : Event ) : void {
    selectAll();
});

编译器确定如果属性事件、样式或性质,但是因为这样做是在编制时间,它不反映。反射,按照定义,是在运行时间。

我认为,它可以争辩说,第二和第三实例是反思,而且它们的实例迟到结合。没有他们实际上确定的能力的对象,他们的工作,因此在这方面他们不是反思。然而,我要说,术语"反射"是非常常用于广义上意味着什么,电话的方法,他们的名字都在运行时确定,或者创建的对象类命名为只有在运行时间。如果你想要精确"迟交的的结合"可能是最正确的答案,但我认为"反射"是不够好。

"反思"?

顺便说一下,我猜测,Flex码你向我们展示了使用简单的ActionScript调用,在这种情况下 click 属性只会 eval'd由解释Flex的文件。因此,有没有特别的魔法背后的这样的代码,就只是输入一个解释。

我认为Flex的例子不太一样作为一个在Java(不知道其他的东西).Java的例子是清楚的东西我会打电话 迟到结合, 因为这类装载解决classname在运行时,最新的时间尽可能做到这一点。

Flex单是主要的另一个语法,其最终编制的东西你可能还编写脚本。我可以告诉,mx:按钮和全选()功能 解决在编制时间.至少mxmlc给出了错误的,如果你使用一个不确定的符号。

有一种情况,编译器,可以帮助这个...代码生成。

如果该类型的变量是不知道直到运行,那么它的延迟结合。如果变量类型是已知的,在编制时间,然后是早期的结合。

智能感知、代码的完成和所有其他IDE特你谈论仅适用于早期的定变量。

闻起来像一个功能指给我。

Java如你给的是被称为动态的类装载。我不确定如果其他的例子是同样的事情。但这是有益的反映。也许你是寻找的设计图案叫倒置的控制。

中。净的世界,我们称这个数据绑定,它已处理的使用反映。

它也让我想起了强烈的依赖注射。

第一个例子是如何命名空间xml可以假设意义上的编制时间, 第二是两个数据绑定/依赖注射 第三个例子是反射,如果我必须标记所有这3例子有一个名称,我想我会去"的语法"

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top