2011-03-09 91 views
2

這可能是非常基本的,但我已經開始失去對OOP原則把握我...Android的面向對象設計基礎

我想設計一些類,以減少我的主要活動類的代碼量,已經發展到1000多條線路。 (處理UI事件的類,消息處理的類,警報/廣播的類等)。

但是,這些類將需要訪問受保護的Activity方法,如findViewById。

我不認爲使用繼承來設計這些類是有意義的,因爲它們本身不是真正的活動......我正在尋找類似於java中的朋友類的東西。

有什麼建議嗎?對不起,如果聽起來很模糊。

回答

0

爲什麼不在一個單獨的類中實現消息處理程序,並將「this」(當前類的實例)傳遞給該處理程序類,以便可以調用這些方法。 也看看依賴注入設計模式。

1

對於GUI應用程序,您應該嘗試遵循的最重要設計模式之一是Model-View-Controller(MVC)模式。

Android在傾向於MVC風格方面做得很好。該活動可以被認爲是控制器部分,您的XML標記是您的查看部分。

如果您的新類對findViewById進行了大量調用,那麼您可能不會很好地分擔責任。如果你正在做大量的視圖操作,你可以考慮subclassing your View classes and referencing them in your XML。如果你添加了很多事件監聽器,你可能應該繼續在Activity子類中這樣做,而是將你檢索到的數據傳遞給你的幫助器類 - 而不是視圖對象本身。