蛋糕模式的一個很大的侷限性就是它的靜態。我希望能夠完全獨立地混合可能由不同編碼人員編寫的特徵。然而,而不是的特點需要經常混入。在主應用程序運行之前,用戶將有一個初始化屏幕,他們可以選擇特徵/程序集。所以我想到了爲什麼不在用戶選擇選擇模塊中混合並編譯所選擇的特徵。如果編譯失敗,用戶將不會收到一些消息 - 不兼容的程序集或任何問題。如果編譯成功,那麼頂級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的侷限性,這些特徵中的代碼必須插入到爲其工作編譯的類中。 –