掌舵的鱼1987 发表于 2020-12-29 17:18

Unreal的代理delegate是什么,为什么需要这种东西?

Unreal的代理delegate是什么,为什么需要这种东西?

我是来围观的逊 发表于 2020-12-29 17:26

你先知道有这么个东西,就可以了。
等业务中遇到相应的问题之后,自然就想到这个了。(想不到的话可以考虑转行了)
要是用不到这玩意,了解再详细也用不上。
这种东西我不建议其他答主举例子,无论是从各位答主的工作里找机制还是凭空硬造个需求来强行讲解,在学习者角度来说没意义。

掌舵的鱼1987 发表于 2020-12-29 17:27

Ue是个自动垃圾回收语言,只存函数指针是维持不住对象的引用的,所以需要包一层。
而且只有函数你的this指针怎么办,每次都通过参数传?


callback并不只是函数,callback的用意是,让你在别的地方可以调用另一个地方的方法。所以才叫delegate(代理)。它不是函数,它是的作用是让你调用另一个函数,就和它自己调用自己一样。

123456833 发表于 2020-12-29 17:35

@powerking 说的是对的,设计这个的目的是为了观察者模式。
详细说明可以参考观察者模式的详细说明……

123456809 发表于 2020-12-29 17:45

用来解耦观察者模式的,不然你就必须在被观察者的代码里插入大量的观察者代码,整个代码的可读性就被严重的破坏了,而且很难维护。每次你只是要变动观察者的代码,却要去修改被观察者,而其实被观察者并不关心这些。事件就是一种常用的观察者模式。

天一教育培训寐 发表于 2020-12-29 17:51

这些都是最最基础的知识点,这个一两句也说不清楚,代理主要是用于架构上的解耦合,和蓝图发报机原理差不多。


你去找找我的文章有介绍过单播多播和动态多播以及代理事件,看完就明白了。
UE4核心技术进阶。

123456848 发表于 2020-12-29 17:57

当你想异步触发,做回调操作,就需要用到代理了。找个UE4源码实例看下就知道了。

123456848 发表于 2020-12-29 18:07

就是java中的interface,c中的callback...
页: [1]
查看完整版本: Unreal的代理delegate是什么,为什么需要这种东西?