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

歡迎訪問 生活随笔!

生活随笔

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

asp.net

一天一个设计模式之建造者模式(Builder)

發布時間:2024/4/11 asp.net 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一天一个设计模式之建造者模式(Builder) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?建造者模式,屬于創建型模式,其目的在于將一個復雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。
適用情況:
? 當創建復雜對象的算法應該獨立于該對象的組成部分以及它們的裝配方式時。
? 當構造過程必須允許被構造的對象有不同的表示時。

類結構圖如下所示

?

?參與者

? Builder
— 為創建一個Product對象的各個部件指定抽象接口。
? ConcreteBuilder
— 實現Builder的接口以構造和裝配該產品的各個部件。
— 定義并明確它所創建的表示。
— 提供一個檢索產品的接口
? Director
— 構造一個使用Builder接口的對象。
? Product
— 表示被構造的復雜對象。ConcreteBuilder創建該產品的內部表示并定義它的裝配過程。
— 包含定義組成部件的類,包括將這些部件裝配成最終產品的接口。

協作
? 客戶創建Director對象,并用它所想要的Builder對象進行配置。
? 一旦產品部件被生成,導向器就會通知生成器。
? 生成器處理導向器的請求,并將部件添加到該產品中。
? 客戶從生成器中檢索產品。

實現代碼:

  • package?com.visionsky.DesignPattern;?
  • ?
  • class?Product?
  • {?
  • ????@Override?
  • ????public?String?toString()?{?
  • ????????return?"Product";?
  • ????}??
  • }?
  • ?
  • interface?Builder?
  • {?
  • ????void?BuildPart();?
  • }?
  • ?
  • class?ConcreteBuilder?implements?Builder?
  • {?
  • ?????
  • ????@Override?
  • ????public?void?BuildPart()?{?
  • ????????//?TODO?Auto-generated?method?stub?
  • ????????System.out.println("Building?Product's?part");?
  • ????}?
  • ?????
  • ????public?Product?GetResult()?
  • ????{?
  • ????????System.out.println("Product's?Building?has?finished");?
  • ????????return?new?Product();?
  • ??????????
  • ????}?
  • }?
  • ?
  • class?Director?
  • {?
  • ????public?Product?Construct(ConcreteBuilder?cb)?
  • ????{?
  • ????????cb.BuildPart();?
  • ????????return?cb.GetResult();?
  • ????}?
  • }?
  • ?
  • public?class?BuilderDemo?{?
  • ?
  • ????/**?
  • ?????*?@param?args?
  • ?????*/?
  • ????public?static?void?main(String[]?args)?{?
  • ????????//?TODO?Auto-generated?method?stub?
  • ????????Director?d=new?Director();?
  • ????????ConcreteBuilder?cb=new?ConcreteBuilder();?
  • ????????Product?p=d.Construct(cb);?
  • ????????System.out.println(p);?
  • ????}?
  • }?
  • 生活中的例子:
    在這里我們以造汽車為例子,汽車是由個很復雜的對象,有很多個子對象組成,如輪胎,引擎,車架等,所以為了造好一輛汽車,其子對象必須具備。
    ?

  • package?com.visionsky.DesignPattern;?
  • ?
  • ?
  • class?Car{?
  • ?
  • ????@Override?
  • ????public?String?toString()?{?
  • ????????return?"汽車產品";?
  • ????}?
  • }?
  • ?
  • interface??IBuilder?
  • {?
  • ????void?BuildWheel();?
  • ????void?BuildCarFrame();?
  • ????void?BuildEngine();??
  • }?
  • ?
  • class?CarBuilder?implements?IBuilder?
  • {?
  • ?
  • ????private?Car?car=new?Car();?
  • ????@Override?
  • ????public?void?BuildCarFrame()?{?
  • ????????//?TODO?Auto-generated?method?stub?
  • ????????System.out.println("建造汽車框架");?
  • ????}?
  • ?
  • ????@Override?
  • ????public?void?BuildEngine()?{?
  • ????????//?TODO?Auto-generated?method?stub?
  • ????????System.out.println("建造汽車輪子");?
  • ????}?
  • ?
  • ????@Override?
  • ????public?void?BuildWheel()?{?
  • ????????//?TODO?Auto-generated?method?stub?
  • ????????System.out.println("建造汽車引擎");?
  • ????}?
  • ?????
  • ????public?Car?CarBuildOver()?
  • ????{?
  • ????????System.out.println("汽車組裝完畢");?
  • ????????return?car;?
  • ????}?
  • }?
  • ?
  • class?CarDirector?
  • {?
  • ?????
  • ????public?Car?BuildCar(CarBuilder?cb)?
  • ????{?
  • ????????cb.BuildCarFrame();?
  • ????????cb.BuildEngine();?
  • ????????cb.BuildWheel();?
  • ????????return?cb.CarBuildOver();?
  • ????}?
  • }?
  • ?
  • public?class?BuliderDemoInLife?{?
  • ?
  • ????/**?
  • ?????*?@param?args?
  • ?????*/?
  • ????public?static?void?main(String[]?args)?{?
  • ????????//?TODO?Auto-generated?method?stub?
  • ????????CarDirector?cd=new?CarDirector();?
  • ????????Car?c=cd.BuildCar(new?CarBuilder());?
  • ????????System.out.println(c);?
  • ????}?
  • }?
  • ?

    ?

    轉載于:https://blog.51cto.com/visionsky/385196

    超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

    總結

    以上是生活随笔為你收集整理的一天一个设计模式之建造者模式(Builder)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 波多野结衣1区2区3区 | 一女三黑人理论片在线 | 操女人免费视频 | 国产私人影院 | 国产福利片在线观看 | 女王人厕视频2ⅴk | av网址导航 | 亚洲射射射 | 国产97色在线 | 国产 | 日韩3区 | 国产人妻黑人一区二区三区 | 色吊丝中文字幕 | 日韩视频免费在线播放 | 久久99久久久| 图书馆的女友动漫在线观看 | 亚欧洲精品视频在线观看 | 黄色小视频链接 | 久久久久久日产精品 | 高潮无码精品色欲av午夜福利 | 丝袜国产视频 | 伊人av综合 | 超91在线| 国产亚洲一区二区三区不卡 | 肉感丰满的av演员 | 91国内精品久久久 | 国产成人无遮挡在线视频 | 漂亮人妻被黑人久久精品 | 在线污视频 | 加勒比毛片 | 欧美透逼视频 | 午夜精品久久久久久久久久久久久蜜桃 | 久草a视频| a级黄色在线观看 | 精品黑人一区二区三区观看时间 | 久久精品国产精品亚洲 | 精品久久国产 | www.国产精品.com | 免费看又黄又无码的网站 | 国产婷婷一区二区三区 | 欧美夫妻性生活视频 | 国产精品高潮av | 实拍澡堂美女洗澡av | 精品一区二区三区免费毛片 | 亚洲精品乱码久久久久 | www.黄色网 | 日本做爰高潮又黄又爽 | 在线不欧美 | 99re热这里只有精品视频 | 国产情侣av在线 | 国产天堂av在线 | 天堂在线精品 | 人人干人人插 | 69视频一区二区三区 | 日本三级456 | free性欧美hd另类 | 91在线最新| 97人妻精品视频一区 | 九色在线 | 亚洲91在线 | 青青草日本 | 91精品美女 | www男人天堂 | 另类视频一区 | 丁香激情五月少妇 | 国产综合婷婷 | 免费黄色资源 | 人妻互换一二三区激情视频 | 图片区视频区小说区 | 92国产精品 | av爱爱爱 | 最近中文字幕mv免费高清在线 | 中文字幕不卡在线观看 | 伊人999| 国产精品123 | 大尺度床戏视频 | 少妇性bbb搡bbb爽爽爽欧美 | 制服av在线| 久久久精品一区二区三区 | 乱熟女高潮一区二区在线 | 性做久久久久久免费观看欧美 | 人人爽爽爽 | av中文资源在线 | 伊人久久大香线蕉av色婷婷色 | 极品粉嫩小仙女高潮喷水久久 | 亚洲一区在线电影 | 国产精品第七页 | 耳光调教vk | 国产在线一区二区三区四区 | 一个人在线免费观看www | 波多野结衣av片 | 99热热99| 天天干天天舔天天射 | 国产青草 | 午夜视频污 | 麻豆精品国产传媒mv男同 | 欧美精品乱码久久久久久 | 奇米影视网 | 风韵少妇性饥渴推油按摩视频 | 亚洲天堂av免费在线观看 |