日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

结构型模式——桥接模式

發布時間:2023/12/4 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 结构型模式——桥接模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、 實驗目的與要求
1.練習使用橋接模式。設計相關的模擬場景并進行實施,驗證模式特性,掌握其優缺點。
2.實驗結束后,對相關內容進行總結。
二、實驗內容
1.模式應用場景說明
相信大家都看過羅老師買奶茶的情節,現實生活中也是一樣,奶茶分為大杯中杯和小杯,而奶茶的口味有多種多樣,是每一種都對應好幾個不同的杯型,可以將杯形和口味分別分開,就形成了各式各樣的,各種大小的奶茶了。
2.應用場景類圖

3.實現代碼與解釋
3.1奶茶類(接口)

package 橋接模式; public interface 奶茶{void nc(String cupType,String name);//里面有奶茶杯的大小,還有奶茶的種類 }

3.2奶茶杯類

package 橋接模式;public abstract class 奶茶杯 //定義一個抽象類, 奶茶杯 {protected 奶茶 milktea; //定義一個受保護的類 奶茶類public void setweidao(奶茶 milktea) //定義一個方法,將(奶茶 milktea)作為參數傳遞進來{this.milktea=milktea;}public abstract void weidao(String name); //定義一個抽象類,目的是選擇不同的奶茶口味。將名字傳遞進來。 }

3.3杯子類型

package 橋接模式;public class 大杯 extends 奶茶杯{public void weidao(String name) //定義方法,將奶茶的名字傳遞進來。與杯子進行結合{String cupType="大杯裝....";this.milktea.nc(cupType,name); } }

3.4奶茶口味類

package 橋接模式; public class 巧克力味 implements 奶茶 {public void nc(String cupType,String name) //將寫好的奶茶,,,傳遞進杯子類型大小,,奶茶名字。組合成不同的奶茶{System.out.println(cupType + "巧克力味"+ name + ".");} }

3.5客戶端代碼

package 橋接模式;public class Client {public static void main(String []args) {奶茶 ncmm;奶茶杯 Cup;ncmm=(奶茶)XMLUtil.getBean("nc");Cup=(奶茶杯)XMLUtil.getBean("cup");Cup.setweidao(ncmm);Cup.weidao("nice");} }

3.6外部文件以及配置

package 橋接模式;import javax.xml.parsers.*; import org.w3c.dom.*; import org.xml.sax.SAXException; import java.io.*; public class XMLUtil { //該方法用于從XML配置文件中提取具體類類名,并返回一個實例對象public static Object getBean(String args){try{//創建文檔對象DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = dFactory.newDocumentBuilder();Document doc; doc = builder.parse(new File("E:\\eclipse-workspace\\橋接模式\\src\\橋接模式\\BridgeconfigPen.xml")); //獲取包含類名的文本節點NodeList nl = doc.getElementsByTagName("className");Node classNode=nl.item(0).getFirstChild();String cName=classNode.getNodeValue();//通過類名生成實例對象并將其返回Class c=Class.forName("橋接模式."+cName);Object obj=c.newInstance();return obj;} catch(Exception e){e.printStackTrace();return null;}} }

4.結果及分析

三、實驗總結
通過橋接模式的練習,讓我們明白了。橋接模式是將加法變成乘法的模式。通過兩個不同的維度變化,可以創建出許許多多的不同的相似產品來。但是重復代碼會很多。類的結構過于復雜,繼承關系太多,難于維護,最后最致命的一點是擴展性太差。

總結

以上是生活随笔為你收集整理的结构型模式——桥接模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。