Patterns in SOME –Builder
来源:互联网 发布:c语言中abs是什么意思 编辑:程序博客网 时间:2024/04/30 02:28
Code in C#:
namespace Builder_DesignPattern
{
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 (1==1 ) //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 0;
}
}
}
Code in SOME:
CDirector
Construct(AAbstractBuilder)
AAbstractBuilder
a_BuildPartA()
a_BuildPartB()
a_BuildPartC()
CConcreteBuilder: AAbstractBuilder
o_BuildPartA()
o_BuildPartB()
o_BuildPartC()
CClient
main
CClient.main
{
CConcreteBuilder concreteBuilder.();
CDirector director.();
director.Construct(concreteBuilder)
{
concreteBuilder.BuildPartA<CConcreteBuilder>()
{
<% /*("CConcreteBuilder.BuildPartA called")*/ %>
};
concreteBuilder.BuildPartB<CConcreteBuilder>()
{
<% /*("CConcreteBuilder.BuildPartA called")*/ %>
};
concreteBuilder.BuildPartC<CConcreteBuilder>()
{
<% /*("CConcreteBuilder.BuildPartA called")*/ %>
};
};
}
- Patterns in SOME –Builder
- Patterns in SOME –State
- Patterns in SOME –Observer
- Patterns in SOME –Memento
- Patterns in SOME –Mediator
- Patterns in SOME –Iterator
- Patterns in SOME – Command
- Patterns in SOME –Interpreter
- Patterns in SOME –Proxy
- Patterns in SOME –Flyweight
- Patterns in SOME –Facade
- Patterns in SOME –Decorator
- Patterns in SOME –Composite
- Patterns in SOME –Bridge
- Patterns in SOME –Singleton
- Patterns in SOME –Prototype
- Patterns in SOME –Chain Of Responsibility
- Patterns in SOME –Template Method
- Patterns in SOME –Prototype
- 野白仿古诗一首
- 一篇关于session的好文章,写的很详细
- ASP.NET 2.0中连接字符串的设置
- java web三层架构配置入门
- Patterns in SOME –Builder
- test
- 项目开发经验总结070228
- 我的分页控件(未完,待续)——控件件介绍及思路
- FreeBSD5.4笔记记录一——ports及源码和内核更新
- 到底谁在抗日
- 想念
- linux下文件系统的问题
- hibernate的中文问题的解决方法的补充