C#设计模式——生成器模式(Builder Pattern)
生活随笔
收集整理的這篇文章主要介紹了
C#设计模式——生成器模式(Builder Pattern)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、概述
在軟件系統中,有時候面臨著復雜的對象創建,該對象由一定算法構成的子對象組成,由于需求變化,這些子對象會經常變換,但組合在一起的算法卻是穩定的。生成器模式可以處理這類對象的構建,它提供了一種封裝機制來隔離各類子對象的變化,從而保證系統的穩定。
二、生成器模式
生成器模式將一個復雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。其結構圖如下:
Builder為創建Product對象的各個子對象指定抽象接口。
ConcreteBuilder實現了Builder接口,用于創建Product對象的各個子對象。
Director使用Builder來創建Product對象。
Product表示被構造的復雜對象。
三、示例
我們以普通汽車和高級汽車的創建為例來展示一下生成器模式的應用。
首先創建抽象的Builder
接著創建普通汽車的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)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCV——人脸检测
- 下一篇: [C#] 简单的 Helper 封装 -