2013-03-31 32 views
23

我知道有些android系統等中使用的設計模式...Android中使用的設計模式是什麼?

  1. 廣播接收機使用Observer設計模式
  2. 意向使用一種工廠設計模式的
  3. 查看使用Composite設計模式
  4. 媒體框架使用Facade設計模式

除了這些還有其他設計模式在android中使用嗎? 欣賞你的想法

+1

可能所有的適配器(即BaseAdapter,SimpleAdapter..etc)都使用適配器設計模式。 – Pragnani

+0

看起來像一個不屬於SO的開放式問題。 – nwellnhof

+1

看看代碼,它看起來像反模式比任何設計模式都要多。是的,您提到了一些模式示例,但大多數代碼僅演示了編寫軟件時不應執行的操作,特別是SDK。如果我能找到它,我會很樂意寫這篇博客。 – Sileria

回答

8

Android在其結構中使用了很多模式。

您可以看到的第一個模式是Layer模式,它在POSA 1(面向模式的軟件體系結構1)書中被分類爲架構模式。 Layers模式的主要結構特徵是Layer J的服務僅被LayerJ + 1使用,層之間沒有進一步的直接依賴關係。這種模式將解決關於低層和高層問題混合的問題,其中高層操作依賴於低層問題。 Android建立在一個多抽象層次層的堆棧上(更多細節參見http://elinux.org/Android_Architecture),所以這個設計被部署來解決它的問題。

Android在多進程中做了很多工作,所以IPC(進程間通信)機制需要設計良好。在Android中,Binder和使用AIDL無縫地進行通信,儘管這些過程中的服務可能用Java,C或C++編寫。 Binder通過Proxy(四人幫),Broker(POSA 1人書)和Facade Wrapper模式(參考此鏈接http://www.cs.wustl.edu/~schmidt/PDF/wrapper-facade.pdf)實施。代理模式會隱藏來自客戶端的通信細節,因此進程可以在本地上下文或網絡上下文中均勻地與對象進行通信。經紀人用於隔離與通信有關的問題。 Facade Wrapper模式用於將低級函數和數據結構封裝在高級接口中的C庫Android中。

多線程機制也使用了很多模式。我們可以看到的模式是用於執行長時間運行呼叫的命令處理器模式。

觀察者模式用於跟蹤與系統相關的狀態。

...。

這些都是我現在所記得的。如果您對Android設計模式感興趣。你可以看看這個課程:Coursera的https://class.coursera.org/posa-001/class/index瞭解更多詳情。