2012-06-15 34 views
3

從哪裏我可以在scala中獲得面向組合框架的編程框架 - Qi4j還是類似的?Scala中基於角色的編程框架/面向組合的編程框架

參考:www.qi4j.org

什麼是Qi4j™? - [簡介摘自www.qi4j.org]

簡而言之,Qi4j™是一個以域爲中心的應用程序開發框架,包括AOP,DI和DDD的演化概念。

Qi4j™是一個面向複合編程的實現,它使用標準的Java 5平臺,不使用任何預處理器或新的語言元素。您從Java 5中所瞭解的所有東西仍然適用,您可以利用您的經驗和工具包,通過現在的面向複合編程提高工作效率。此外,Qi4j™能夠在Java平臺上實現面向組合的編程,包括Java和Scala作爲主要語言,以及JVM上運行的許多過渡語言作爲橋接語言。

+1

看看特質(或/和蛋糕模式)。你可以在Qi4j中做的一些事情可以用這些... – Jan

+0

@Jan你有任何可以在運行時更改特徵的scala代碼示例嗎? – Optimight

+0

運行期間無法更改特徵。正如我所說,你可以做一些*事情。 ;-) – Jan

回答

1

看看this answer,看看爲什麼你不能在運行時改變特質。

爲了動態改變(或選擇)行爲:也許你看看type classes或隱式轉換。

問候,揚

1

Qi4j 2.0(開發中)增加了強有力的支持斯卡拉,和Qi4j混入和關注我們正在做的工作斯卡拉有用的性狀(AOP「around通知」當量)。 Scala特性編譯爲靜態方法,它將擁有類的代理實例作爲第一個參數(C中的經典C++表示)。 Qi4j將能夠將Trait作爲Mixin進行連接(即,方法可以在Composite的公共接口中公開),並綁定到底層的StateHolder中以供Trait使用的組合,所以看起來特徵將具有狀態。 ...

FTR; Qi4j 2.0還可以最大限度地減少類型佔用空間,使Qi4j不可知論類型的使用比以前更多。