关于C# 设计模式  Builder 生成器模式

关于C# 设计模式 Builder 生成器模式

using System;
using System.Collections.Generic;
using System.Text;

///Builder(生成器)模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
///add by jzh 2007-04-15
namespace DesignPattern
{
    /// <summary>
    /// Director(指导者)角色:调用具体建造者角色以创建产品对象。
    /// 指导者并没有产品类的具体知识,真正拥有产品类的具体知识的是具体建造者对象。
    /// </summary>
    class Director
    {
        public void Construct(AbstractBuilder abstractBuilder)
        {
            abstractBuilder.BuildPartA();
            abstractBuilder.BuildPartB();
            abstractBuilder.BuildPartC();
        }
    }

    abstract class AbstractBuilder
    {
        abstract public void BuildPartA();
        abstract public void BuildPartB();
        abstract public void BuildPartC();
    }

    /// <summary>
    /// Concrete Builder(具体生成器)角色:担任这个角色的是于应用程序紧密相关的类,
    /// 它们在指导者的调用下创建产品实例。
    /// 这个角色在实现抽象建造者角色提供的方法的前提下,达到完成产品组装,提供成品的功能。
    /// </summary>
    class ConcreteBuilder : AbstractBuilder
    {
        override public void BuildPartA()
        {
            // 待创建的复杂对象。它要包含那些定义组件的类,包括将这些组件装配成产品的接口。
            Console.WriteLine("ConcreteBuilder.BuildPartA 调用");
        }

        override public void BuildPartB()
        {
            Console.WriteLine("ConcreteBuilder.BuildPartB 调用");
        }

        override public void BuildPartC()
        {
            Console.WriteLine("ConcreteBuilder.BuildPartC 调用");
        }
    }

    public class Client
    {
        public static void Main(string[] args)
        {
            ConcreteBuilder concreteBuilder = new ConcreteBuilder();
            Director director = new Director();

            director.Construct(concreteBuilder);

            Console.ReadLine();
        }
    }
}

 

发表回复

您的电子邮箱地址不会被公开。