Java設(shè)計(jì)模塊共分為三個(gè):創(chuàng)建型模式、結(jié)構(gòu)型模式、行為模式。在上一篇文章中,北京北大青鳥校區(qū)老師給同學(xué)們介紹了創(chuàng)建型模式,今天我們將繼續(xù)以通俗易懂的舉例方式來介紹第二塊模式,結(jié)構(gòu)型模式
結(jié)構(gòu)型模式
1、BRIDGE
舉例:早上碰到MM,要說早上好,晚上碰到MM,要說晚上好;碰到MM穿了件新衣服,要說你的衣服好漂亮哦,碰到MM新做的發(fā)型,要說你的頭發(fā)好漂亮哦。不要問我"早上碰到MM新做了個(gè)發(fā)型怎么說"這種問題,自己用BRIDGE組合一下不就行了。
橋梁模式:將抽象化與實(shí)現(xiàn)化脫耦,使得二者可以獨(dú)立的變化,也就是說將他們之間的強(qiáng)關(guān)聯(lián)變成弱關(guān)聯(lián),也就是指在一個(gè)軟件系統(tǒng)的抽象化和實(shí)現(xiàn)化之間使用組合/聚合關(guān)系而不是繼承關(guān)系,從而使兩者可以獨(dú)立的變化。
2、FACADE
舉例;我有一個(gè)專業(yè)的單反相機(jī),喜歡自己手動(dòng)調(diào)光圈、快門,這樣照出來的照片才專業(yè),但MM可不懂這些,教了半天也不會(huì)。幸好相機(jī)有Facade設(shè)計(jì)模式,把相機(jī)調(diào)整到自動(dòng)檔,只要對(duì)準(zhǔn)目標(biāo)按快門就行了,一切由相機(jī)自動(dòng)調(diào)整。
門面模式:外部與一個(gè)子系統(tǒng)的通信必須通過一個(gè)統(tǒng)一的門面對(duì)象進(jìn)行。門面模式提供一個(gè)高層次的接口,使得子系統(tǒng)更易于使用。每一個(gè)子系統(tǒng)只有一個(gè)門面類,而且此門面類只有一個(gè)實(shí)例,也就是說它是一個(gè)單例模式。但整個(gè)系統(tǒng)可以有多個(gè)門面類。(北京北大青鳥校區(qū))
3、DECORATOR
舉例;最好的朋友過生日,可是這個(gè)月我“手頭有點(diǎn)緊”怎么辦?拿出我們?nèi)ツ耆ヂ糜蔚南嗥诒趁鎸懮希鹤詈玫亩Y物,就是我們共同擁有的美好回憶,然后再去禮品店找個(gè)漂亮的相框表起來……我們都是Decorator,最終都在修飾我這個(gè)人呀,怎么樣,看懂了嗎?
裝飾模式:裝飾模式以對(duì)客戶端透明的方式擴(kuò)展對(duì)象的功能,是繼承關(guān)系的一個(gè)替代方案,提供比繼承更多的靈活性。動(dòng)態(tài)給一個(gè)對(duì)象增加功能,這些功能可以再動(dòng)態(tài)的撤消。增加由一些基本功能的排列組合而產(chǎn)生的非常大量的功能。
4、ADAPTER-在朋友聚會(huì)上碰到了一個(gè)異國美女,可是我們倆語言不通,只要求助我的朋友當(dāng)翻譯,當(dāng)溝通橋梁。
適配器(變壓器)模式:把一個(gè)類的接口變換成客戶端所期待的另一種接口,從而使原本因接口原因不匹配而無法一起工作的兩個(gè)類能夠一起工作。適配類可以根據(jù)參數(shù)返還一個(gè)合適的實(shí)例給客戶端。(北京北大青鳥校區(qū))