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

歡迎訪問 生活随笔!

生活随笔

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

asp.net

设计模式笔记之七 (桥接模式)

發布時間:2024/4/17 asp.net 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式笔记之七 (桥接模式) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

橋接模式

橋接模式就是把影響事物對象的多個因素抽象出來從而使兩者解偶,那么就能動態的加載變化的因素。

好吧,這個定義很抽象,我們還是來聊下具體的事物。

最近我們實驗室因為一系列的設計模式改進,所以競爭力和盈利都有了長足的發展,所以老總們就計劃著沖出亞洲,走向全球了。但是我們以前生產的男人女人都是黑發黃膚的東方系列產品,現在要打入歐美市場,我們就必須要生產金發白膚的西方系列產品,所以我們就定制了各自的產品模板:

class Ren { }class NanRen extends Ren {public String gender = "男";public String hair = "";public String skin = ""; }class NvRen extends Ren {public String gender = "女"; }class DongFangNanRen extends NanRen {public String hair = "黑色";public String skin = "黃膚";public void build() {System.out.println("性別:" + gender + ", 特征:" + hair + ", " + skin);} } class XiFangNanRen extends NanRen {public String hair = "金色";public String skin = "白膚";public void build() {System.out.println("性別:" + gender + ", 特征:" + hair + ", " + skin);} } class DongFangNvRen extends NvRen {public String hair = "黑色";public String skin = "黃膚";public void build() {System.out.println("性別:" + gender + ", 特征:" + hair + ", " + skin);} } class XiFangNvRen extends NvRen {public String hair = "金色";public String skin = "白膚";public void build() {System.out.println("性別:" + gender + ", 特征:" + hair + ", " + skin);} }public class Bridge {public static void main(String[] args) {new XiFangNvRen().build();new DongFangNvRen().build();new XiFangNanRen().build();new DongFangNanRen().build();} }

這時人妖工廠的廠長說人妖也要打入歐美市場,正常人工廠的廠長說我們不僅僅要打入歐美市場,還得打入非洲和印度市場。

我們的模具制造哥一聽立馬暈倒,倒地前大吼一句,要3X4個模具讓哥加班加死吧。

就在這時,我們的資深顧問提出了一種解決方案來解救模具制造哥:

既然我們的"人"產品需要一些頭發和皮膚的"特征",而頭發和皮膚的特征會不時的改變,我們何不將"人"和"特征"分離開來,"人"只需要知道自己要有一些"特征",至于"特征"是什么樣的,到用戶使用的時候用戶給"人"賦予自己所需要的"特征"就行。

class Ren {TeZhen tz;public void setTeZhen(TeZhen tz) {this.tz = tz;} }class NanRen extends Ren {public String gender = "男";public void build() {System.out.println("性別:" + gender + ", 特征:" + tz.getHair() + ", " + tz.getSkin());} }class NvRen extends Ren {public String gender = "女";public void build() {System.out.println("性別:" + gender + ", 特征:" + tz.getHair() + ", " + tz.getSkin());} }interface TeZhen {public abstract String getHair();public abstract String getSkin(); }class DongFangTeZhen implements TeZhen {@Overridepublic String getHair() {return "黑色";}@Overridepublic String getSkin() {return "黃膚";}}class XiFangTeZhen implements TeZhen {@Overridepublic String getHair() {return "金色";}@Overridepublic String getSkin() {return "白膚";}}public class Bridge {public static void main(String[] args) {NvRen nvren = new NvRen(); //創建一個女人 TeZhen df = new DongFangTeZhen();// 生產一個東方特征nvren.setTeZhen(df); // 將東方特征賦予一個女人nvren.build(); // 這就是我們需要的東方女人 TeZhen xf = new XiFangTeZhen();nvren.setTeZhen(xf);//我們還可以給同一個人換上西方特征來滿足我們一些特殊的需求 nvren.build();} }

這樣設計就解決了我們模具制造哥的問題,不過也讓我們的模具制造哥失業了,因為進入非洲及印度市場的時候,我們只需要加上兩種特征就行了。

class FezhouTeZhen implements TeZhen {@Overridepublic String getHair() {return "黑色";}@Overridepublic String getSkin() {return "黑膚";}}class YingDuTeZhen implements TeZhen {@Overridepublic String getHair() {return "黑色";}@Overridepublic String getSkin() {return "棕膚";}}

現在全球都是我們的市場,并且很多人買了一個"人"和多個"特征"來滿足不同時間段的需要。

?

轉載于:https://www.cnblogs.com/biglaojiang/archive/2013/05/15/3079742.html

總結

以上是生活随笔為你收集整理的设计模式笔记之七 (桥接模式)的全部內容,希望文章能夠幫你解決所遇到的問題。

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