2009-06-22 30 views
4

我正處於Blackberry/J2ME項目的開始階段 - 除了這個美妙的平臺帶來的其他侷限性,缺少對反射和1.3語言級別的支持意味着絕大多數現有IoC容器都不可用。 (Google沒有AOP的Guice for Android,但即使這樣也需要支持註釋)。尋找J2ME友好的IoC容器已經開啓!

所以J2ME上IoC容器的空間相當有限。引起我注意的一個框架被稱爲Signal Framework,它看起來很有希望。它試圖保持概念上接近Spring Framework的IoC,實現它的一小部分功能,並且不依賴於字節碼修改或導致運行時XML解析。相反,它在構建時處理配置XML以生成實現此IoC功能的Java代碼。

一般來說,代碼生成在編譯的時候似乎是移動應用的非常明智的做法 - 如果我的應用程序必須做用戶的設備上少XML解析,這是偉大的呢!

那麼,是什麼一直對J2ME/CLDC實現的IoC您的經驗,以及如何是你能熄滅你的嘴苦味?

回答

2

在J2ME中你需要減少你使用盡可能減少JAR文件的大小類的數量。這導致許多設計妥協,其中最重要的是靈活性。

這是不容易的,當你不得不放棄的你雖學到的東西必須(和來高度重視)關於OO窗外調整到J2ME開發。事實是,如果您希望可以在大量手機上運行的應用程序,您需要對設備的限制非常敏感。

因此,我認爲IoC框架不會滿足許多人對J2ME開發的需求。

+0

Dankeshön爲您提供洞察,Grouchal :)我同意您在J2ME上放棄一些應用程序設計偏好的想法。然而,我認爲自己可以負擔得起使用IoC框架的原因是,我正在開發的應用程序將針對基於CLDC的更強大的設備,如S60上最新的Blackberry和J2ME(以及Android,還有一些MODS)。 – 2009-06-25 22:04:38

+0

當CLDC 1.0被構思時,CLDC 1.0所強加的限制背後的想法非常棒;然而,今天,似乎大多數感興趣的設備功能更強大,並且具有更多的存儲空間。因此,我們是否可以將良好的開發實踐(如IoC的使用)轉移到移動Java開發的問題上是非常自然的。如我所說,如果這可以通過構建時生成代碼而不是在運行時完成,並且可以顯着改進代碼組織的清晰度 - 爲什麼不使用它? – 2009-06-25 22:07:19

1

您可能有興趣查看FallME。儘管我沒有親自使用它,但它似乎是專門爲J2ME平臺構建的無意義框架。

1

我一個荷蘭壺會議期間在Spring ME來(與它沒有任何經驗)。

3

我們在TomTom使用了Spring ME。它工作得很好。