创建型设计模式之建造者模式(Builder)
2024-10-21 16:15:12
结构 | |
意图 | 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 |
适用性 |
|
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 ;
}
}
建造者模式
最新文章
- webservice入门实例,CXF方式
- JSON resource 启示
- HTTP协议简解
- js optiontransferselect
- 三年程序学习之二:(对web初认识)
- HDU1432+几何
- <;html:form>;、 <;html:text>;、<;html:password>;、<;html:submit>; 标签
- jquery的节点查询
- unexpected problem
- MFC的消息反射机制
- centos GUI界面与命令行的切换
- sciense
- Python中的迭代器、生成器
- CORS(跨域资源共享)详解及与JSONP的对比
- SublimeText SFTP连接Amazon EC2
- Hive数据类型及文本文件数据编码
- SpringBoot配置属性转载地址
- 【洛谷】3966:[TJOI2013]单词【AC自动机】【fail树】
- parseInt函数
- select,poll,epoll,selectors