结构型模式——桥接模式
生活随笔
收集整理的這篇文章主要介紹了
结构型模式——桥接模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、 實驗目的與要求
1.練習使用橋接模式。設計相關的模擬場景并進行實施,驗證模式特性,掌握其優缺點。
2.實驗結束后,對相關內容進行總結。
二、實驗內容
1.模式應用場景說明
相信大家都看過羅老師買奶茶的情節,現實生活中也是一樣,奶茶分為大杯中杯和小杯,而奶茶的口味有多種多樣,是每一種都對應好幾個不同的杯型,可以將杯形和口味分別分開,就形成了各式各樣的,各種大小的奶茶了。
2.應用場景類圖
3.實現代碼與解釋
3.1奶茶類(接口)
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.結果及分析
三、實驗總結
通過橋接模式的練習,讓我們明白了。橋接模式是將加法變成乘法的模式。通過兩個不同的維度變化,可以創建出許許多多的不同的相似產品來。但是重復代碼會很多。類的結構過于復雜,繼承關系太多,難于維護,最后最致命的一點是擴展性太差。
總結
以上是生活随笔為你收集整理的结构型模式——桥接模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 创建和删除文件夹命令创建和删除文件夹命令
- 下一篇: 结构型模式——适配器模式