本篇內(nèi)容介紹了“Java設(shè)計(jì)模式的外觀模式如何實(shí)現(xiàn)”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
成都創(chuàng)新互聯(lián)公司主營(yíng)文登網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都app軟件開發(fā)公司,文登h5小程序開發(fā)搭建,文登網(wǎng)站營(yíng)銷推廣歡迎文登等地區(qū)企業(yè)咨詢
外觀模式(Facade Pattern)隱藏系統(tǒng)的復(fù)雜性,并向客戶端提供了一個(gè)客戶端可以訪問系統(tǒng)的接口。這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它向現(xiàn)有的系統(tǒng)添加一個(gè)接口,來隱藏系統(tǒng)的復(fù)雜性。
這種模式涉及到一個(gè)單一的類,該類提供了客戶端請(qǐng)求的簡(jiǎn)化方法和對(duì)現(xiàn)有系統(tǒng)類方法的委托調(diào)用。
意圖: 為子系統(tǒng)中的一組接口提供一個(gè)一致的界面,外觀模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。
主要解決: 降低訪問復(fù)雜系統(tǒng)的內(nèi)部子系統(tǒng)時(shí)的復(fù)雜度,簡(jiǎn)化客戶端之間的接口。
何時(shí)使用:
1.客戶端不需要知道系統(tǒng)內(nèi)部的復(fù)雜聯(lián)系,整個(gè)系統(tǒng)只需提供一個(gè)"接待員"即可。
2定義系統(tǒng)的入口。
如何解決: 客戶端不與系絨耦合,外觀類與系統(tǒng)耦合。
關(guān)鍵代碼: 在客戶端和復(fù)雜系統(tǒng)之間再加一層.這一層將調(diào)用順序、依賴關(guān)系等處理好。
應(yīng)用實(shí)例:
1.去醫(yī)院看病,要去掛號(hào)、門診、劃價(jià)、取藥,讓患者或患者家屬覺得很復(fù)雜,如果有提供接待人員,只讓接待人員來處理就很方便。
2.JAVA的三層開發(fā)模式。
優(yōu)點(diǎn):
1.減少系統(tǒng)相互依賴。
2.提高了靈活性。
3.提高了安全性。
缺點(diǎn): 不符合開閉原則,如果要改東西很麻煩,繼承重寫都不合適。
使用場(chǎng)景:
1.為復(fù)雜的模塊或子系統(tǒng)提供外界訪問的模塊。
2.子系統(tǒng)相對(duì)獨(dú)立。
3.預(yù)防低水平人員帶來的風(fēng)險(xiǎn)。
我們將創(chuàng)建一個(gè)Shape接口和實(shí)現(xiàn)了Shape接口的實(shí)體類。下一步是定義一個(gè)外觀類ShapeMaker。
ShapeMaker類使用實(shí)體類來代表用戶對(duì)這些類的調(diào)用。FacadePatternDemo類使用ShapeMaker類來顯示結(jié)果。
1.創(chuàng)建一個(gè)項(xiàng)目名稱為facade_pattern的Java項(xiàng)目。
2.創(chuàng)建一個(gè)圖形接口Shape。
package com.js; /** * 繪制圖形的接口 */ public interface Shape { void draw(); }
3.創(chuàng)建圖形實(shí)現(xiàn)類
package com.js; /** * 矩形類 */ public class Rectangle implements Shape{ @Override public void draw() { System.out.println("繪制矩形"); } }
package com.js; /** * 正方形類 */ public class Square implements Shape{ @Override public void draw() { System.out.println("繪制正方形"); } }
package com.js; /** * 圓形類 */ public class Circle implements Shape{ @Override public void draw() { System.out.println("繪制圓形"); } }
4.創(chuàng)建外觀類
package com.js; /** * 外觀類(用來生成制造目標(biāo)對(duì)象 */ public class ShapeMaker { private Shape circle; private Shape rectangle; private Shape square; public ShapeMaker() { circle=new Circle(); rectangle=new Rectangle(); square=new Square(); } public void drawCircle(){ circle.draw(); } public void drawRectangle(){ rectangle.draw(); } public void drawSquare(){ square.draw(); } }
5.創(chuàng)建入口程序
package com.js; /** * 客戶端看待(盡量簡(jiǎn)單,完成功能) */ public class FacadePattern { public static void main(String[] args) { ShapeMaker maker=new ShapeMaker(); maker.drawCircle(); maker.drawRectangle(); maker.drawSquare(); } }
6.結(jié)果
繪制圓形 繪制矩形 繪制正方形
“Java設(shè)計(jì)模式的外觀模式如何實(shí)現(xiàn)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
本文標(biāo)題:Java設(shè)計(jì)模式的外觀模式如何實(shí)現(xiàn)
文章路徑:http://bm7419.com/article36/gipepg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、電子商務(wù)、響應(yīng)式網(wǎng)站、、Google、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)