gpt4 book ai didi

Dart 何时使用镜像 API

转载 作者:行者123 更新时间:2023-12-03 04:12:34 25 4
gpt4 key购买 nike

这可能是一个愚蠢的问题,很抱歉问这个问题,仅供引用,我是这种东西的新手。

在阅读了有关镜像的文档后,我只能理解镜像 API 就像复制一些实例加上访问一些我不知道何时/为什么使用的方法。

任何人都关心给我一些指示,一些例子会很好。

最佳答案

Mirror API 允许您以编程方式(在执行期间)检索有关对象和类型的元数据,并在对象上执行方法。类似于 reflection在 .NET 或 Java 中。

一个典型的例子是实现插件支持:

假设您定义了 IPlugin界面并想自动注册到您的PluginManager实现它的每种类型的实例,无需显式注册每个新实现。有时您甚至事先并不知道所有插件,例如如果用户可以部署自己的插件。

您可以这样做(警告:我从未使用过 Mirror API,因此这是基于 API 文档的高级描述,而不是正确的实现):

  • 你先用MirrorSystem.libraries获取 LibraryMirror MirrorSystem 中每个库的实例
  • 然后对于每个 LibraryMirror您使用 classes房产获得ClassMirror对于图书馆中的每个类(class)
  • 对于每个 ClassMirror使用 superinterfaces获取所有实现的接口(interface)
  • 如果任何实现的接口(interface)是IPlugin您可以创建该类的实例( ClassMirror.newInstance )并将其注册到插件管理器。

  • 如果没有镜像 API,您将无法枚举所有类型、查找它们实现的接口(interface)(无需创建对象)或创建您事先不知道的类型的实例。

    老实说,我不确定 Dart 中镜像 API 的当前状态是什么,我相信它还没有完成,但我可能错了。

    关于Dart 何时使用镜像 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16599988/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com