我正在设计一个医院集成系统,它使用来自不同医院(我们的客户)的数据,然后根据从数据库读取配置将特定的业务规则应用于所述数据。如果我使用 Java,我的第一直觉是构建一系列代表各种业务规则的接口,然后注入具体实例(使用 Spring/guice)来组成一个完全配置的对象。这将使我能够在配置逻辑(哪些 biz 规则应该适用于 Hospital Foo?)和实际业务规则本身之间实现清晰的分离。
不幸的是,我没有使用 Java,我使用的是 Lua。在过去的几天里,我沉浸在 Lua 文献中,与 DI 最接近的模拟似乎是模块的使用。此外,管理如何在运行时解析 lua 模块的规则似乎完全基于询问本地文件系统。
“模块模式”是实现我所追求的最佳/唯一方法(将配置逻辑与 biz 逻辑分离)?如果是这样,如何利用 Lua 的模块加载规则来改变在运行时加载的实际模块?