创建型模式之二---Builder
来源:互联网 发布:四大人工智能业务 编辑:程序博客网 时间:2024/05/18 00:14
1、结构图
2、代码
/***********************************************************************************
* 意图:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
* 适用性:
* 1、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
* 2、当构造过程必须允许被构造的对象有不同的表示时。
* 协作:
* 1、客户创建Director对象,并用它所想要的Builder对象进行配置;
* 2、一旦产品部件被生成,导向器(Director)就会通知生成器(Builder);
* 3、生成器处理导向器的请求,并将部件添加到该产品中;
* 4、客户从生成器中检索产品。
* 作者:董怀信
* 时间:2009-05-26
***********************************************************************************/
using System;
namespace DesignPattern.CreationalPattern
{
/// <summary>
/// 为创建一个Product对象的各个部分指定抽象接口;
/// </summary>
public abstract class Builder
{
protected string[] m_Object = new string[3];
public abstract void BuildPartA();
public abstract void BuildPartB();
public abstract void BuildPartC();
public virtual string[] GetResult()
{
return new string[0];
}
}
/// <summary>
/// 实现Builder的接口以构造和装配该产品的各个部分;
/// 定义并明确他所创建的表示;
/// 提供一个检索产品的接口。
/// </summary>
public class ConcreteBuilder : Builder
{
public override void BuildPartA()
{
m_Object[0] = "ConcreteBuilder:BuildPartA;";
}
public override void BuildPartB()
{
m_Object[1] = "ConcreteBuilder:BuildPartB;";
}
public override void BuildPartC()
{
m_Object[2] = "ConcreteBuilder:BuildPartC;";
}
public override string[] GetResult()
{
return m_Object;
}
}
/// <summary>
/// 表示被构造的复杂对象。ConcreteBuilder创建该产品的内部表示并定义它的装配过程;
/// 包含定义组成部件的类,包括将这些部件装配成最终产品的接口。
/// </summary>
public class Director
{
public void Construct(Builder builder)
{
builder.BuildPartA();
builder.BuildPartB();
builder.BuildPartC();
}
}
/// <summary>
/// 测试代码
/// </summary>
public class Client
{
public void Test()
{
Director d = new Director();
Builder builder = new ConcreteBuilder();
d.Construct(builder);
string[] result = builder.GetResult();
foreach (string item in result)
{
Console.WriteLine(item);
}
}
}
}
- 创建型模式之二---Builder
- 设计模式笔记--创建型模式之二 Builder
- 创建型模式之Builder模式
- 创建型设计模式之Builder模式
- 创建模式之Builder
- 创建型模式四之Builder
- 创建型--builder模式
- 创建对象之Builder模式
- 设计模式之生成器(Builder)----对象创建型模式
- 设计模式-创建型模式之 Builder(生成器)
- 创建型模式之建造者模式(Builder)
- 创建型模式之建造者(Builder)模式
- 创建型模式之建造者模式(Builder)
- 设计模式(创建型)之建造者模式(Builder Pattern)
- spring 与设计模式(创建型)之Builder模式
- 【设计模式】创建型模式之生成器Builder
- 设计模式之对象创建型 — builder 生成器模式
- 设计模式之创建模式Builder
- 明晰C++内存分配的五种方法的区别
- C++ 的50项条款
- 读完了《编程之美》
- 待业在家 1
- 【共享】IT公司电话面试题
- 创建型模式之二---Builder
- find_mianfei.php源代码分析
- 数据仓库学习笔记
- SD卡资料(转)
- 使用 MOCK 对象进行单元测试的实例讲解
- 福州城市交通规划十大败笔之作
- CMMB考验本土集成电路成长
- mobile 用html格式文本提示notify
- 软件测试中基于Web的自动化测试方法