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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

23种经典设计模式的java实现_3_桥接模式

發布時間:2025/3/20 asp.net 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 23种经典设计模式的java实现_3_桥接模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
橋接模式的適用: 你不希望在抽象和它的實現部分之間有一個固定的綁定關系。例如:程序的實現部分在運行時需要被選擇或者切換。 類的抽象以及它的實現都應該可以通過生成子類的方法加以擴充。這時Bridge模式使你可以對不同的抽象接口和實現部分進行組合,并分別對它們進行擴充。 對一個抽象實現的修改需要對客戶不產生影響,即客戶的代碼不必重新編譯。 有許多類要生成。這種情況下你必須將一個對象分解成兩個部分。這種類層次結構為“嵌套的普化”。 你想在多個對象間共享實現(可能使用引用計數),但同時要求客戶并不知道這一點。 示例說明: 接口IText定義了字體的最終展現,但其的具體實現TextImpLinux和TextImpMac并不用作對外使用(即向客戶暴露)。 那么,我們使用抽象類AbstractText對IText的具體實現進行“橋接”,即在這兩個真實的實現和最終對外使用的字體類TextBold和TextItalic之間建造了一座橋梁,這座橋梁是通過TextBold和TextItalic繼承抽象類AbstractText實現的。 最終,結果就是,字體具有了新的特性Bold和Italic但又不失自己的基本屬性Linux和Mac。 這就是我們想要的。 字體接口及其兩個基本實現——具有Linux風格或Mac風格的字體: package com.alex.designpattern.bridge; /** *//**
?* @author <a href="huqimailto:huqiyes@gmail.com">huqi</a>
?* @serialData 2007
?*/
public interface IText ...{
??? public void DrawTextImp();
} package com.alex.designpattern.bridge; /** *//**
?* The ConcreteImplementor
?*/
public class TextImpLinux implements IText ...{
??? public void DrawTextImp() ...{
??????? System.out.println("The text has a Linux style.");
??? }
} package com.alex.designpattern.bridge; /** *//**
?* The ConcreteImplementor
?*/
public class TextImpMac implements IText ...{
??? public void DrawTextImp() ...{
??????? System.out.println("The text has a Mac style.");
??? }
}
?這個抽象類可以看作是一個橋梁,它被用來“橋接”字體的基本實現與字體的附加特性,使字體的屬性得到無綁定的擴充: package com.alex.designpattern.bridge; /** *//**
?* The Abstract of Text<br>
?* Set the Text's System Style
?* <p>
?* This abstract class is a bridge,<br>
?* it can bridge "System Style" to real implemention "Text Style" of IText.
?*
?* @author <a href="huqimailto:huqiyes@gmail.com">huqi</a>
?* @serialData 2007
?*/
public abstract class AbstractText ...{
??? public abstract void DrawText(String text); protected IText GetTextImp(String type) ...{
??????? if (type.equals("Mac")) ...{
??????????? return new TextImpMac();
??????? } else if (type.equals("Linux")) ...{
??????????? return new TextImpLinux();
??????? } else ...{
??????????? return new TextImpMac();
??????? }
??? }
}
那么,以下就是字體的附加特性——粗體和斜體,它們通過實現抽象類AbstractText來與基本屬性的實現結合: package com.alex.designpattern.bridge; /** *//**
?* The RefinedAbstraction
?*
?* @author <a href="huqimailto:huqiyes@gmail.com">huqi</a>
?* @serialData 2007
?*/
public class TextBold extends AbstractText ...{
??? private IText imp; public TextBold(String type) ...{
??????? imp = GetTextImp(type);
??? } public void DrawText(String text) ...{
??????? System.out.println(text);
??????? System.out.println("The text is bold text.");
??????? imp.DrawTextImp();
??? }
} package com.alex.designpattern.bridge; /** *//**
?* The RefinedAbstraction
?*
?* @author <a href="huqimailto:huqiyes@gmail.com">huqi</a>
?* @serialData 2007
?*/
public class TextItalic extends AbstractText ...{
??? private IText imp; public TextItalic(String type) ...{
??????? imp = GetTextImp(type);
??? } public void DrawText(String text) ...{
??????? System.out.println(text);
??????? System.out.println("The text is italic text.");
??????? imp.DrawTextImp();
??? }
}
最后,當然是測試啟動類啦,通過可以測試我們對這個模式的實現: package com.alex.designpattern.bridge; /** *//**
?* 橋接模式
?* <p>
?* 將抽象部分與它的實現部分分離,使它們都可以獨立地變化。
?*
?* @author <a href="huqimailto:huqiyes@gmail.com">huqi</a>
?* @serialData 2007
?*/
public class Test ...{ public static void main(String[] args) ...{
??????? AbstractText myText = new TextBold("Mac");
??????? myText.DrawText("=== A test String ==="); System.out.println("------------------------------------------"); myText = new TextBold("Linux");
??????? myText.DrawText("=== A test String ==="); System.out.println("------------------------------------------"); myText = new TextItalic("Mac");
??????? myText.DrawText("=== A test String ==="); System.out.println("------------------------------------------"); myText = new TextItalic("Linux");
??????? myText.DrawText("=== A test String ===");
??? }
}
你還等什么呢?復制下來運行它試試看吧——如果你還對“橋接”模式不了解的話。 ?

轉載于:https://blog.51cto.com/huqicto/280902

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的23种经典设计模式的java实现_3_桥接模式的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 炕上如狼似虎的呻吟声 | av在线资源播放 | 韩国三级中文字幕hd久久精品 | jiuse九色| 亚洲激情图片 | 国产在线一 | 国产无码精品久久久 | 亚洲人在线视频 | 久久久久久草 | 国产综合第一页 | 亚洲综合中文 | 欧美日韩极品 | 人人射人人射 | 黄色激情毛片 | 中文在线www | 亚洲色成人网站www永久四虎 | 97成人人妻一区二区三区 | 538国产视频 | av少妇在线| 国产成人无码av在线播放dvd | 国产视频麻豆 | 欧美久久一区 | 69视频网 | 国产精品国产三级国产播12软件 | 国产一区二区三区色淫影院 | 情侣av| www.日日| 国产又粗又猛又爽又黄的视频在线观看动漫 | 亚洲精品久久久久久 | 黄色香蕉网 | 精品国产一区二区三区四区精华 | 久久免费国产视频 | 成人自拍视频 | 丁香色综合 | 中文字幕2018 | 欧美在线视频你懂的 | 一本大道久久a久久综合婷婷 | 蜜臀少妇久久久久久久高潮 | 国产日韩欧美一二三区 | 黄色av网站在线观看 | 精品久久久久久 | 破处视频在线观看 | 欧美一级α片 | av手机版 | 国产精品久久久久久亚洲色 | 国产一级二级视频 | wwwxxxx国产 | 国产精品短视频 | 国产成人免费视频 | 最新av免费在线观看 | 日本123区| 日本黄频 | 簧片av| 少妇视频在线播放 | 黄骗免费网站 | 极品粉嫩小仙女高潮喷水久久 | 黄色网址在线免费播放 | jlzzjlzz欧美大全| 日韩一区二区免费在线观看 | 久久精品国产av一区二区三区 | 一极黄色大片 | 天天在线免费视频 | 亚洲va国产va天堂va久久 | 青青青青青草 | 国产麻豆一区二区三区在线观看 | 成人免费黄色网址 | 国产片一区二区 | 日韩经典av | 一本一道波多野结衣一区二区 | 97国产精品视频人人做人人爱 | 麻豆自拍视频 | 久久免费电影 | 成年人黄色免费视频 | 玉女心经 在线 | 成色网 | av资源网在线观看 | 欧美日韩免费高清 | 久久免费视频2 | 在线观看成人动漫 | 中文字幕在线二区 | 国模精品一区二区三区 | 波多野结衣视频免费 | av手机网站| 色视频免费看 | 久久九九国产精品 | 香蕉大久久 | 91黄色视屏| 国产精品一区二区av日韩在线 | 日韩一区二区三区不卡 | 亚洲第八页 | 中文字幕第35页 | 一级黄色片免费播放 | 与子敌伦刺激对白播放的优点 | 欧美色视频一区二区三区 | 激情 小说 亚洲 图片 伦 | 男人干女人视频 | 在线观看亚洲一区二区 | 亚洲精品久久久久久一区二区 | 夜夜爽夜夜叫夜夜高潮漏水 |