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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#设计模式——生成器模式(Builder Pattern)

發布時間:2024/4/13 C# 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#设计模式——生成器模式(Builder Pattern) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、概述
在軟件系統中,有時候面臨著復雜的對象創建,該對象由一定算法構成的子對象組成,由于需求變化,這些子對象會經常變換,但組合在一起的算法卻是穩定的。生成器模式可以處理這類對象的構建,它提供了一種封裝機制來隔離各類子對象的變化,從而保證系統的穩定。
二、生成器模式
生成器模式將一個復雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。其結構圖如下:

Builder為創建Product對象的各個子對象指定抽象接口。
ConcreteBuilder實現了Builder接口,用于創建Product對象的各個子對象。
Director使用Builder來創建Product對象。
Product表示被構造的復雜對象。
三、示例
我們以普通汽車和高級汽車的創建為例來展示一下生成器模式的應用。
首先創建抽象的Builder

1 interface ICarBuilder 2 { 3 void BuilderWheels(); 4 void BuilderWindows(); 5 }

接著創建普通汽車的Builder和高級汽車的Builder

1 public class BasicBuilder : ICarBuilder2 {3 public void BuilderWheels()4 {5 Console.WriteLine("Builder Basic Wheels");6 }7 8 public void BuilderWindows()9 { 10 Console.WriteLine("Builder Basic Windows"); 11 } 12 } 13 14 public class AdvancedBuilder : ICarBuilder 15 { 16 public void BuilderWheels() 17 { 18 Console.WriteLine("Builder Advanced Wheels"); 19 } 20 21 public void BuilderWindows() 22 { 23 Console.WriteLine("Builder Advanced Windows"); 24 } 25 }

然后創建汽車建造工廠,它使用Builder來創建不同種類的汽車

1 class CarFactory2 {3 public ICarBuilder Builder { get; set; }4 5 public CarFactory(ICarBuilder builder)6 {7 Builder = builder;8 }9 10 public void CreateCar() 11 { 12 Builder.BuilderWheels(); 13 Builder.BuilderWindows(); 14 } 15 }

最后看一下如何調用

1 static void Main(string[] args) 2 { 3 CarFactory game = new CarFactory(new BasicBuilder()); 4 game.CreateCar(); 5 game.Builder = new AdvancedBuilder(); 6 game.CreateCar(); 7 Console.ReadLine(); 8 }

總結

以上是生活随笔為你收集整理的C#设计模式——生成器模式(Builder Pattern)的全部內容,希望文章能夠幫你解決所遇到的問題。

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