外觀模式 統一的程式設計介面

2021-08-18 10:29:35 字數 1062 閱讀 2090

為子系統的各個介面提供乙個統一的介面,提供乙個高層的介面,對外隱藏內部實現和呼叫關係,使得子系統更容易使用。

最少知道原則(迪公尺特法則),黎克特制替換原則,依賴倒置原則

在類圖中可以看出,facede是系統對外的統一介面,用於封裝內部的實現,並和外界進行互動。inte***cea,inte***ceb,inte***cec為facede依賴的介面,他們負責具體的實現,並且內部可能有相關呼叫關係,使用外觀模式,使得內部邏輯對使用者透明,使用者只需要使用facede就可以了。

public

inte***ce

facede

public

class

facedeimpl

implement

facede

@override

void operation2()

@override

void operation3()

}

以上**中,facede作為高層介面,用來提供統一的介面,facedeimpl實現facede,facede是外觀類,它依賴具體的子系統介面,並呼叫子系統的方法,用來實現具體的功能,並封裝內部邏輯細節。我們可以發現,在這個例子中,facede只是定義了一系列的介面,但是他的實現類並沒有直接實現這些功能,而是呼叫了各個子系統的方法來實現的功能。它的作用類似於排程器或者匯流排,協調各個子系統的運轉。

當要為乙個複雜的系統提供乙個簡單的介面的時候可以使用,比如封裝sdk,網路庫,載入庫等。關鍵一點就是,當內部比較複雜,需要提供乙個簡單的統一介面的時候就可以使用。

context在android中使用廣泛,它封裝了很多的重要操作。比如startactivity,sendbroadcast,呼叫系統資源等。它是乙個抽象類,具體功能由contextimpl實現,但是contextimpl不具備實現這些功能的能力,在它的內部呼叫了其他的類(子系統)來實現具體的功能,比如呼叫activitymanagerservice實現startactivity。可以看出,這是典型的外觀模式的運用,context提供統一的高層介面,具體功能由子系統實現。具體內容可以查閱context,contextimpl相關原始碼。

統一的訪問介面

在嵌入式開發中,難免要和硬體打交道,方式就是讀寫相應的暫存器。為了便於維護,肯定是要模組開發,分層開發。很多東西都知道,關鍵是執行。工作壓力大,趕進度等等就降低了對 質量的要求。這裡記錄下自己的感受,免得以後再犯。針對暫存器的操作肯定是是要封裝到函式內部的,提供乙個介面,如read reg writ...

開發統一的部落格介面

現在部落格很流行,很多人都在使用部落格,有些人同時擁有幾個不同的部落格 不知你有沒有這樣的煩惱,就是你寫了一篇文章,這時想傳到不同的部落格 上去,就得開啟不同的部落格網頁,在上面發布文章,這樣很煩躁,並且做的是重複的工作。有沒有可能,有沒有可能寫了一篇文章,在乙個地方上傳,就可以在不同的部落格 上面...

物件導向程式設計思想 外觀模式

一 引言 每逢去吃午飯路上,幾個同事都要討論一番投資理財的事情,時間久之,小白的我才勉強了解到 與 的區別,是自身直接與某只 交易,可以通過分紅或者低買高賣獲利 自身需要分析 多隻 的 如圖示一 而 是把錢交給 公司,有專業人員幫你分析 或債券等幫你理財 自身不需要直接關注 了,見圖示二 圖示一 圖...