大话设计模式读书笔记11----建造者模式(Builder)
生活随笔
收集整理的這篇文章主要介紹了
大话设计模式读书笔记11----建造者模式(Builder)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
建造者模式(Builder):將一個復雜對象的構建與它的表示分離,使得同樣的建造過程可以創建不同的表示。
1、Builder是什么?
是創建一個Product對象的各個部件指定的抽象接口。
2、ConcreteBuilder 是什么?
是具體建造者,實現Builder接口,構造和裝配各個部件。
3、Director是什么?
指揮者,構建一個使用Builder接口的對象。
建造者模式代碼using?System;using?System.Collections.Generic;
using?System.Text;
namespace?Builder
{
????class?Program
????{
????????static?void?Main(string[]?args)
????????{
????????????Director?director?=?new?Director();
????????????Builder?builder?=?new?ConcreteBuilder();
????????????director.Construct(builder);
????????????Product?p1?=?builder.GetResult();
????????????p1.Show();
????????????Console.ReadLine();
????????}
????}
????abstract?class?Builder
????{
????????public?abstract?void?BuilderA();
????????public?abstract?void?BuilderB();
????????public?abstract?Product?GetResult();
????}
????class?Product
????{
????????IList<string>?parts?=?new?List<string>();
????????public?void?Add(string?part)
????????{
????????????parts.Add(part);
????????}
????????public?void?Show()
????????{
????????????Console.WriteLine("產品創建------");
????????????foreach?(string?part?in?parts)
????????????{
????????????????Console.WriteLine(part);
????????????}
????????}
????}
????class?ConcreteBuilder?:?Builder
????{
????????private?Product?product?=?new?Product();
????????public?override?void?BuilderA()
????????{
????????????product.Add("部件A");
????????}
????????public?override?void?BuilderB()
????????{
????????????product.Add("部件B");
????????}
????????public?override?Product?GetResult()
????????{
????????????return?product;
????????}
????}
????class?Director
????{
????????public?void?Construct(Builder?builder)
????????{
????????????builder.BuilderA();
????????????builder.BuilderB();
????????}
????}
}建造者模式是當創建復雜對象的算法應當獨立于該對象的組成部分以及它們的裝配方式時使用的模式。
轉載于:https://www.cnblogs.com/gooliugle/archive/2010/04/27/1722124.html
總結
以上是生活随笔為你收集整理的大话设计模式读书笔记11----建造者模式(Builder)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rrr
- 下一篇: python读取大文件的坑_Python