标签:创建过程 bst enum 抽象工厂 算法 void print lock builder
创建型
在软件系统中,有时候面临一个"复杂对象"的创建工作,其通常由各个部分的子对象用一定算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合到一起的算法却相对稳定.
与抽象工厂不同的是,他只创建一个对象,只是把创建过程分开了.同时需要一个客户程序来指挥创建过程(先创建什么部分,创建几个).抽象工厂的对象是相互之间是有关系的(引用),Builder中创建各个部分组成一个整体对象.
将一个复杂对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示(变化)
//创造器(抽象)
public abstract class Builder
{
public abstract void BuildDoor();
public abstract void BuildWall();
public abstract void BuildWindows();
public abstract void BuildFloor();
public abstract void BuildHouseCeiling();
public abstract House GetHouse();
}
//最终的产品(抽象)
public abstract class House{
}
//指挥者
public class Director
{
public void Construct(Builder builder)
{
//"组合到一起的算法/创建算法"是稳定的
//顺序和数量等都是可定制的
builder.BuildWall();builder.BuildWall();
builder.BuildHouseCeiling();
builder.BuildDoor();
builder.BuildWindows();
builder.BuildFloor();
}
}
public static void Main(){
//可以采取动态的方式,修改构造函数构造的创造器
Director direc=new Director(new MyBuilder());
}
变化
对象各个部分内部实现
不变
对象创建算法,对象部分的个数
标签:创建过程 bst enum 抽象工厂 算法 void print lock builder
原文地址:http://www.cnblogs.com/Recoding/p/7160161.html