設計模式學習總結(五)創建者模式(Builder)
阿新 • • 發佈:2017-06-30
lose etl bfc .get splay hid 定義 string ogr
創建者模式,主要針對某些產品有類似的生產步驟,且有需要有先後順序的進行各個部件的生成。
一、示例展示:
通過學習及總結,以下是我完成的創建者模式的示例:
1.創建產品類:Laptop
public class Laptop { ArrayList LaptopParts = new ArrayList(); public void AddParts(string PartName) { LaptopParts.Add(PartName); } public void ShowPartList() {View Codeforeach (string part in LaptopParts) { Console.WriteLine(part); } } }
2. 創建抽象創建者角色:AbstractBuilder
public abstract class AbstractBuilder { public abstract void CreateCPU(); public abstract void CreateScreen(); public abstract void CreateKeyboard();View Codepublic abstract Laptop GetLaptop(); }
3. 創建具體創建者角色:AppleLaptopBuilder
public class AppleLaptopBuilder : AbstractBuilder { private Laptop laptop = new Laptop(); public override void CreateCPU() { laptop.AddParts("Apple CPU is very fast!"); } public overrideView Codevoid CreateKeyboard() { laptop.AddParts("The experience of apple Keyboard is wouderful!"); } public override void CreateScreen() { laptop.AddParts("The experience of apple screen is really amazing!"); } public override Laptop GetLaptop() { return laptop; } }
4. 創建具體創建者角色:LenovoLaptopBuilder
public class LenovoLaptopBuilder : AbstractBuilder { private Laptop laptop = new Laptop(); public override void CreateCPU() { laptop.AddParts("Lenovo CPU is very good!"); } public override void CreateKeyboard() { laptop.AddParts("Lenovo Keyboard looks amazing!"); } public override void CreateScreen() { laptop.AddParts("Lenovo screen is wounderful!"); } public override Laptop GetLaptop() { return laptop; } }View Code
5. 創建指導者角色:Director
public class Director { public void Construct(AbstractBuilder builder) { builder.CreateCPU(); builder.CreateKeyboard(); builder.CreateScreen(); builder.GetLaptop(); } }View Code
6. 定義客戶端調用:
class Program { static void Main(string[] args) { Director director = new Director(); AppleLaptopBuilder alBuilder = new AppleLaptopBuilder(); director.Construct(alBuilder); Laptop AppLaptop = alBuilder.GetLaptop(); AppLaptop.ShowPartList(); LenovoLaptopBuilder llBuilder = new LenovoLaptopBuilder(); director.Construct(llBuilder); Laptop LnLaptop = llBuilder.GetLaptop(); LnLaptop.ShowPartList(); Console.ReadLine(); } }View Code
二、創建者模式設計理念:
通過抽象創建者角色來限制及規範產品的結構,且針對產品的每個部件都需要相應的建構方法。具體的創建者角色負責創建產品的實例,在這個過程中間,指導者的角色負責創建產品的實例的具體步驟(可以隨產品的具體創建步驟而增加或減少)。
三、角色及關系:
設計模式學習總結(五)創建者模式(Builder)