先回顧一下之前我們已經講過的設計模式:
簡單工廠模式,策略模式,單一職責原則,開放封閉原則,依賴倒轉原則,裝飾模式,抽象工廠模式,模板方法模式,迪公尺特法則;
今天我們來講一下外觀模式,這個在昨天講迪公尺特法則的時候我們已經提到過,其實外觀模式就是迪公尺特法則在實際中的運用。
多餘的例子我就不不說了,就講一下我們的三層設計模式吧。
先貼出外觀模式的定義:
為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得子系統更加容易使用。
不管這個結構圖如何,讓我們先來回憶一下我們學習過的3層模式,3層模式是我們軟體開發中常用的框架模式,分為表示層,業務邏輯層,資料處理層。
那麼為什麼我們要用這麼多分層呢,原因只有乙個,就是為了減少**耦合度。
想象一下你將一大堆的資料庫操作和複雜的業務邏輯,在和介面混雜在一起,你會怎樣,即使在前期開發中你感覺還不錯,但是後期的維護呢,如果達不到人碼合一,我估計修改的人肯定會暗暗罵你,真尼瑪坑爹呀!
有了3層模式,表示層只負責和介面上的互動操作,複雜的業務邏輯交給業務邏輯層去處理,相應的資料在進過業務邏輯層之後在傳遞給資料訪問層,這樣感覺整個思路非常的清晰,感覺介面欠佳,我該表示層,感覺需要新增業務邏輯,我就直接操作業務邏輯層,這樣也滿足我們的各大軟體設計原則,給軟體的後續維護帶來了方便,所以大家在編寫**的時候,一定要整理好自己的思路,不要將複雜的**混雜在一起,否則有一天你真的會被罵坑爹啊
程式設計是一種技術,更是一種藝術。藝術的底層就是我們現在看的這些設計模式和設計原則。如果你不想當乙個碼農,而是想真正的當乙個藝術家,那麼請和darren一起來從底層來學習這些基本工,編碼讓生活更精彩。
什麼都會變,唯有這些底層的知識不會變,所以你現在投資時間來學設計模式,不敢說絕對對你有幫助,但是我想他會改變你對編碼的看法,甚至對生活的看法,最近再聽貓撲網路電台,感覺很不錯,誰說程式設計師只能整天敲**,我們也可以找時間去接觸一下外面的新奇事物,聽聽大家都在說什麼,聽聽大家背後的故事,我一直都以聆聽者的態度去面對這個社會,因為我知道,在你沒有成功之前,沒有人願意是你的聆聽者,或者你說的話根本起不到什麼影響力,所以在沒有成功之前我選擇去聆聽,聽聽大家的想法,重中揣摩出新的思想,這樣就為我的成功又積攢了一塊磚,不要怕現在失去什麼,我只看好我以後能得到什麼!
哈哈,今天的設計模式比較簡單,順便聊聊darren對編碼的看法以及對人生的看法,希望大家以後能多多給darren提問題,當然大家有好的想法和建議也可以提出來,大家一起討論。我想和各位成為朋友。
天色已晚,大家都洗洗睡吧,新的一天,讓我們用滿懷的激情去迎接它...
www.tianboo.net
JAVA設計模式(十)設計模式之外觀設計模式
本章講解設計模式中外觀設計模式的基本知識 1.概念 迪公尺特法則 law of demeter 又叫作最少知識原則 least knowledge principle 簡寫lkp 就是說乙個物件應當對其他物件有盡可能少的了解,不和陌生人說話。英文簡寫為 lod.2.未採用外觀設計模式的場景 1 建立...
設計模式 外觀設計模式
外觀設計模式 facade 又稱為門面設計模式。很好理解,先來舉個例子 一位病人去醫院看病,他要去 然後檢查,取藥,醫院是乙個大系統,而病人需要和每乙個子部門去打交道。比較麻煩。而如果使用門面設計模式,就是在醫院設定乙個接待員,由接待員來幫助病人分別去和各個部門打交道。如下 門面設計模式就是這麼簡單...
外觀設計模式
外觀模式 facade pattern 門面模式,隱藏系統的複雜性,並向客戶端提供了乙個客戶端可以訪問系統的介面。這種型別的設計模式屬於結構型模式,它向現有的系統新增乙個介面,來隱藏系統的複雜性。這種模式涉及到乙個單一的類,該類提供了客戶端請求的簡化方法和對現有系統類方法的委託呼叫。使用場景 我們需...