簡單理解設計模式之外觀模式

2021-07-22 22:28:36 字數 1757 閱讀 9610

最近有點忙,沒什麼時間來寫部落格,所以一閒下來就想起來,還有很多的模式沒有跟大家一起分享,所以今天就來跟大家一起談談設計模式之外觀模式。

1.什麼是外觀模式?

說實話,平常我很少看見跟外觀模式有關的一些講解,(也可能是我孤陋寡聞吧)。

閒話就不多說了,不管怎樣我們先來看看外觀模式的定義:

為子系統的一組介面提供乙個一致的介面,使這個子系統變得更加的容易使用。

在這裡我們要注意的是介面,這裡的介面不是我們平常所使用的inte***ce,這裡它可以使inte***ce,但是也可以使乙個類的方法,或者變數,一句話就是除了介面還有類。

2.什麼時候使用?

我覺得這是我們最關心的話題,在我的心裡我覺得設計模式無非不是設計原則的實現(這裡是最少知識原則),使用模式會使我們開發更有效率。那麼我們什麼時候使用呢?個模式?

我覺得外觀模式其實它的本質是:降低物件之間的耦合度,減少系統之間的依賴,使開發維護更簡單。

我覺得對於乙個模式的初步了解這樣就已經足夠了,說太多的理論知識會把人繞暈的,明白原理,然後在實際的專案中運用,再運用,我覺得這個才是最重要的。

為了更好的理解,下面我通過乙個很簡單的例子來談談,希望人人都能舉一反三,當然這也包括我。

再看看圖理解一下:

看完後,我們來通過**來實現乙個例子:鬥地主

鬥地主我們是不是要有三個人才行,所以

第一步建立乙個person的介面:

package com.zqu.yqy.scdn.test.test002;

public inte***ce person

第二步實現類:(2個農民,乙個地主)

package com.zqu.yqy.scdn.test.test002;

public class farmer1 implements person

}

package com.zqu.yqy.scdn.test.test002;

public class farmer2 implements person

}

package com.zqu.yqy.scdn.test.test002;

public class landholder implements person

}

然後是乙個遊戲介面:

package com.zqu.yqy.scdn.test.test002;

public class faceinte***ce

}

然後就是我們的實現類:(開始鬥地主)

package com.zqu.yqy.scdn.test.test002;

public class client

}

執行的結果:

i現在,朋友,鬥地主結束了哦,嘻嘻

看到這裡懂了嗎?不懂再看一遍,或者是用上打叉的方法來實現一遍(這個挺重要的)。

還有就是外觀模式還跟中介者模式相似,後面會說到。

然後想說的就是博主水平有限,有不足的地方還請說一下,謝謝,好的地方也可以聊一下。

設計模式之外觀模式

外觀模式提供了乙個統一的介面,用來訪問子系統中的一群介面。這樣可以避免客戶端和子系統之間的緊耦合。這種模式需要將一系列的子系統組合到外觀中,然後將具體的工作交給各個子系統去完成。如此一來,可以簡化介面的呼叫。其本質就是將系統與客戶端互動的地方封裝起來。這個模式,總體來說,很簡單,理解起來也不困難。依...

設計模式之外觀模式

外觀模式 為子系統中的一組介面提供乙個一直的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。即通過乙個中類來完成客戶端的請求。拿機房收費系統的上機過程來說,上機需要顯示上機者的資訊,填寫上機狀態表,填寫上機記錄表。而使用者不需要知道這些功能是怎麼實現的,只需要通過介面操作就可以完...

設計模式之外觀模式

外觀模式,為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。在設計初期階段,應該要有意識的將不同的兩個層分離,比如經典的三層架構,層與層之間建立外觀facade。在開發階段,子系統往往因不斷的重構演化而變得越來越複雜,增加外觀模式可以提供乙個簡單的...