Java中幾種常用的設計模式__Java

來源:互聯網
上載者:User
在Java的學習中比較常見的幾種設計模式

尚學堂-馬士兵老師大致講的,總結一下

1.單例模式(單態模式):

在程式運行過程中只有幾個類或是只有一個類,達到“單例模式”。無論外部類調用多少次“構造”,記憶體中只是分配一次執行個體化的對象,達到單例模式。外部不能建立對象,所以必須在原來內部建立對象,以備外部調用。由於外面沒有建立對象的情況下,只能反問static 方法,故返回建立的對象的方法必須是static類型,而靜態方法只能訪問靜態成員變數,故執行個體化的物件類型必須是static類型。

      單例,多例,靜態工廠設計,三者”密不可分“,明白即可。在工廠中出現單例設計模式,而不重新講解。靜態工廠與普通工廠有區別,兩者衝突,只用一個。

2.普通工廠設計模式:

生產的東西交給工廠。使其脫離耦合度。
普通工廠:可以擴充產品的,(擴充產品工廠),若擴充產品系列就麻煩那,會導致工廠類泛濫。
抽象工廠:不適於擴充新的產品品種,那將改動很多,改動抽象工廠介面,新增功能,和具體工廠的功能。
Spring 的Bean工廠。
任意定製交通工具類型(也不是任意,是某子類)。
任意生產過程方法:為了統一寫法,必須使用抽象(交通工具)工廠。
抽象工廠:換膚的軟體-整體的風格都變化了,按鈕、菜單。

3.策略設計模式:(_Strategy)

4.事件設計模式【監聽者】(Observer).有監聽類,及其監聽道的事件類型。

設計模式裡面:解譯器不重要。
裝飾器簡單。

追美眉的設計模式: 包含。
5.Brige(橋接)【送禮物】模式自學較為困難。使其整合關係脫離,慎用整合,以免子類太多,繼承關係本身就是耦合高。
向2個維度上擴充,如例子上,一個維度上是按照具體類型來劃分,另一種是按照類型來劃分,導致子類層出不窮。
就應該即支援2個維度上的擴充。
核心:掌握到了這一點就行。用彙總代替繼承,是一個很常用的手段。
橋接模式也不是用的很多,非常少用,就馬士兵都沒用過。2個維度排列組合就用橋接。
用組合代替繼承。

6.適配器設計模式(Adapter):java IO包 的InputStreamReader 就是適配,一邊是InputStream,一邊是Reader,來個InputStreamReader轉接。
設計模式的區分在於語意,而不是文法。充電器的電壓。一邊一個介面,另一邊是另外一個介面,彼此不相容,就適配器。
其中JDBC-ODBC就是適配器,java要訪問ODBC,但是不能直接存取,中間通過JDBC來訪問就解決了問題,JDBC一邊串連JAVA,一邊串連ODBC.這就是
JDBC-ODBC橋。有時候和代理區分不是明顯,但是這隻是語義上的區分。

7.Command(命令)言聽計從。讓他做各種格言的事情。doSomething(),將來還會擴充。
原始的23種設計模式:最開始時候,Command設計模式是:做菜單的Undo(記錄),返回---撤銷。
一個請求來,可以讓任何對象來執行。所以才有上面的對所以操作都可以“撤銷”。撤銷畫過的圖,撤銷寫的字。
在所有的圖形化的操作的撤銷時候:實現Undo(),要用棧來記錄所有執行過的操作,因為後執行先Undo。
Struts說自己實現的Command,完成某項功能命令。其實是:。

明明可以一次讓Boy完成許多操作,所以Boy應該擁有許多Command的引用,即集合類:List。

8.State:用得也不多。一個類的動作因類的狀態不同而有不同。
把if-else變成模式了

9.裝飾設計模式:decorator。

mediator:【非常的簡單】調停者設計模式。作為系統內部來調停。中介者,顧問。設計模式版的坦克大戰裡面有。


。




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.