结构
意图 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
适用性
  • 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
  • 当构造过程必须允许被构造的对象有不同的表示时。
  using System;

     // These two classes could be part of a framework,
// which we will call DP
// =============================================== class Director
{
public void Construct(AbstractBuilder abstractBuilder)
{
abstractBuilder.BuildPartA();
if (== ) //represents some local decision inside director
{
abstractBuilder.BuildPartB();
}
abstractBuilder.BuildPartC();
} } abstract class AbstractBuilder
{
abstract public void BuildPartA();
abstract public void BuildPartB();
abstract public void BuildPartC();
} // These two classes could be part of an application
// ================================================= class ConcreteBuilder : AbstractBuilder
{
override public void BuildPartA()
{
// Create some object here known to ConcreteBuilder
Console.WriteLine("ConcreteBuilder.BuildPartA called");
} override public void BuildPartB()
{
// Create some object here known to ConcreteBuilder
Console.WriteLine("ConcreteBuilder.BuildPartB called");
} override public void BuildPartC()
{
// Create some object here known to ConcreteBuilder
Console.WriteLine("ConcreteBuilder.BuildPartC called");
}
} /// <summary>
/// Summary description for Client.
/// </summary>
public class Client
{
public static int Main(string[] args)
{
ConcreteBuilder concreteBuilder = new ConcreteBuilder();
Director director = new Director(); director.Construct(concreteBuilder); return ;
}
}

建造者模式

最新文章

  1. webservice入门实例,CXF方式
  2. JSON resource 启示
  3. HTTP协议简解
  4. js optiontransferselect
  5. 三年程序学习之二:(对web初认识)
  6. HDU1432+几何
  7. &lt;html:form&gt;、 &lt;html:text&gt;、&lt;html:password&gt;、&lt;html:submit&gt; 标签
  8. jquery的节点查询
  9. unexpected problem
  10. MFC的消息反射机制
  11. centos GUI界面与命令行的切换
  12. sciense
  13. Python中的迭代器、生成器
  14. CORS(跨域资源共享)详解及与JSONP的对比
  15. SublimeText SFTP连接Amazon EC2
  16. Hive数据类型及文本文件数据编码
  17. SpringBoot配置属性转载地址
  18. 【洛谷】3966:[TJOI2013]单词【AC自动机】【fail树】
  19. parseInt函数
  20. select,poll,epoll,selectors

热门文章

  1. eBay 表结构
  2. 6.定制10MINS首页1
  3. sql中给逗号分隔的查询结果替换单引号
  4. 容器技术的落地还要依靠SDN
  5. 【Neural Network】林轩田机器学习技法
  6. Java线程的两种实现形式
  7. C:\Windows\System32目录可执行文件列表(Win7 64)
  8. ASP.NET Core 认证与授权[1]:初识认证 (笔记)
  9. Day2 Activity生命周期/启动模式/最佳实践
  10. Leetcode 671.二叉树中第二小的节点