
using System;
using System.Collections.Generic;
public class Product
{
}
public abstract class Builder
{
public abstract void BuildPartA();
public abstract void BuildPartB();
public abstract Product getResult();
}
public class ConBuilder1:Builder
{
public override void BuildPartA()
{
}
public override void BuildPartB()
{
}
public override Product getResult()
{
return new Product();
}
}
public class Conbuilder2:Builder
{
public override void BuildPartA()
{
}
public override void BuildPartB()
{
}
public override Product getResult()
{
return new Product();
}
}
public class Director
{
public void Construct(Builder builder)
{
builder.BuildPartA();
builder.BuildPartB();
}
}
public class MyClass
{
public static void Main()
{
Director myDirector=new Director();
Builder builder1=new ConBuilder1();
myDirector.Construct(builder1);
Product myProduct=builder1.getResult();
}
}
using System.Collections.Generic;
public class Product
{
}
public abstract class Builder
{
public abstract void BuildPartA();
public abstract void BuildPartB();
public abstract Product getResult();
}
public class ConBuilder1:Builder
{
public override void BuildPartA()
{
}
public override void BuildPartB()
{
}
public override Product getResult()
{
return new Product();
}
}
public class Conbuilder2:Builder
{
public override void BuildPartA()
{
}
public override void BuildPartB()
{
}
public override Product getResult()
{
return new Product();
}
}
public class Director
{
public void Construct(Builder builder)
{
builder.BuildPartA();
builder.BuildPartB();
}
}
public class MyClass
{
public static void Main()
{
Director myDirector=new Director();
Builder builder1=new ConBuilder1();
myDirector.Construct(builder1);
Product myProduct=builder1.getResult();
}
}
Builder模式的缘起:
假设创建游戏中的一个房屋House设施,该房屋的构建由几部分组成,且各个部分富于变化。如果使用最直观的设计方法,每一个房屋部分的变化,都将导致房 屋构建的重新修正.....
动机(Motivation):
在软件系统中,有时候面临一个"复杂对象"的创建工作,其通常由各个部分的子对象用一定算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合到一起的算法却相对稳定。
如何应对种变化呢?如何提供一种"封装机制"来隔离出"复杂对象的各个部分"的变化,从而保持系统中的"稳定构建算法"不随需求的改变而改变?
意图(Intent):
将一个复杂对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。
-------《设计模式》GOF