蛋糕模式的一个很大的局限性就是它的静态。我希望能够完全独立地混合可能由不同编码人员编写的特征。然而,而不是的特点需要经常混入。在主应用程序运行之前,用户将有一个初始化屏幕,他们可以选择特征/程序集。所以我想到了为什么不在用户选择选择模块中混合并编译所选择的特征。如果编译失败,用户将不会收到一些消息 - 不兼容的程序集或任何问题。如果编译成功,那么顶级UI模块将会使用程序集的预编译部分加载新编译的类并运行主应用程序。请注意,可能只需要在运行时初始化期间编译一个或两个类。所有其他代码都可以正常编译。Scala:懒蛋糕和蛋糕模式的运行时编译
我对斯卡拉来说很新。 这是一种公认的模式吗?有没有对它的支持?似乎很生气,不得不使用Guice来获得相对简单的依赖情况。 我可以在应用程序中轻松运行Scala编译器吗?我可以在内存中运行它,并且可以在内存中使用它的输出而不会创建不必要的文件
注意:虽然看起来是动态的,但这种方法仍然会保持100%静态的。
编辑它发生在Microsoft的Roslyn项目的驱动器之一是为C#和Visual Basic启用这种事情。但即使对于一个高性能的微软团队来说,这似乎也是一个相当大的项目。
过去几天有个问题,看起来像你的:http://stackoverflow.com/questions/11054299/can-we-assign-change-traits-to-the-scala-class-during -runtime-how-any-sampl –
@ om-nom-nom不,我不认为它是同一个问题。我只是试图自动化开发人员可以手动执行的操作。选择一些mixins编译类,使模块与预先存在的库结合起来,然后运行程序。它根本不违背静态范式。 –
@RichOliver鉴于JVM的局限性,这些特征中的代码必须插入到为其工作编译的类中。 –