Rak*_*esh 5 java delegates design-patterns objective-c ios
我查看了一个示例,其中为java解释了委托模式.没有找到太多用处(原谅无知)因为我觉得它缺乏objective-c的灵活性.是否可以像在objective-c中那样动态设置委托对象.这不是代表团的全部意义吗?我对java的了解非常初步,所以请详细解释一下.
我认为有很多方法可以在Java中实现委托模式,但可能没有一种方法可以像内置一样.
看看维基百科的例子.您的基本选项是手动实现一个接口,然后简单地将调用转发到一个具体的实例,您可以在运行期间根据需要更改该实例.
现在,根据您拥有和可以使用的工具,您可以更自动地进行此转发.一个想法是使用面向方面的编程,如AspectJ.
拥有一个方面编译器(或运行时),您可以使用注释并提出一个简单的语言扩展:
class Person {
@Delegate Animal animal;
...
}
Run Code Online (Sandbox Code Playgroud)
然后,您必须编写一个方面来查找@Delegates并自动在类(例如Person)接口中添加转发方法.
如果您能够使用更加常规的JVM语言,那么您甚至不必编写一行代码,因为这些语言在标准库中具有委托:
你可以看看这里,看看它是如何在Groovy中完成的.(essentialy完全像Person我想出的示例语法...但是内置!)
| 归档时间: |
|
| 查看次数: |
1468 次 |
| 最近记录: |