https://www.reddit.com/r/Unity3D/comments/1uv8q43/iwant_your_opinion_on_a_modular_inventory/

我正在为Unity开发一个模块化的库存框架,名为InventoryModule,旨在作为一个工具来帮助开发库存系统或基本的重复布局组。其中一个特性是 自定义可执行系统,基本上允许开发者注册他们自己的方法,使框架执行。例如,如果我的框架不支持多槽选择,开发者可以只写自己的方法并注册它。或者他们不满意我的特性,他们可以自由地写自己的。目标是使其尽可能松散耦合。所以他们可以在任何地方调用它。

代码 - 测试代码自定义可执行代码

已知的权衡:

  • 字符串键意味着没有编译器安全性——开发者必须知道名称和参数类型
  • 仅限于我编写的重载(目前支持Action<T1, T2, T3>,尚未添加对函数和元组的支持)
  • GenerateKey 在每次调用时都会分配一个字符串

问题:

  1. 这种模式是否值得在框架中构建,还是开发者应该直接编写自己的输入?
  2. 是否有一个更干净的模式来存储异质委托而不使用 DynamicInvoke
  3. 您如何在自己的框架/SDK中处理自定义输入可扩展性?

感谢!