C#设计模式之建造者(Builder)模式示例源代码
using System;
using System.Collections;
//product
public class Computer
{
private string Type;
private Hashtable info=new Hashtable ();
public Computer(string type)
{
Type=type;
Console .WriteLine ("Conputer "+type+" is Builded!");
}
public string this[string key]
{
get
{
return (string)info[key];
}
set
{
info[key]=value;
}
}
public void Show()
{
Console .WriteLine ("this is a computer of "+Type+" :");
Console .WriteLine (" "+info["cpu"]);
Console .WriteLine (" "+info["ram"]);
}
}
//Builder
public abstract class Builder
{
protected Computer computer;
public Computer Computpter
{
get
{
return computer;
}
}
public Builder(string type)
{
computer=new Computer (type);
}
abstract public void BuildCpu();
abstract public void BuilderRam();
}
public class MacBuilder:Builder
{
public MacBuilder(string type):base(type)
{}
public override void BuildCpu()
{
computer["cpu"]="MacCpu";
}
public override void BuilderRam()
{
computer["ram"]="MacCpu";
}
}
public class pcBuilder:Builder
{
public pcBuilder(string type):base(type)
{}
public override void BuildCpu()
{
computer["cpu"]="pcCpu";
}
public override void BuilderRam()
{
computer["ram"]="pcCpu";
}
}
public class Worker
{
public void Construct(Builder builder)
{
builder.BuildCpu();
builder.BuilderRam();
}
}
public class CEO
{
public static void Main()
{
try
{
Worker Worker=new Worker ();
Builder PcBuilder=new pcBuilder ("Pc");
Builder MacBuilder=new MacBuilder ("Mac");
Worker .Construct(PcBuilder);
Worker.Construct(MacBuilder);
PcBuilder.Computpter.Show ();
MacBuilder.Computpter.Show ();
}
catch(Exception ex)
{
Console.WriteLine ("Error:"+ex.Source+" "+ex.InnerException+ex.StackTrace+ex.TargetSite);
}
}
}
下一篇:UBB(c#完整版) >>
相关文章:
- · 快速开发vs.net+c#程序(-)
- · C#对XML操作:编辑XML文件内容
- · 用C#生成Excel文件的方法和Excel.dll组件生成的方法
- · 用C#实现Web文件的上传
- · C#编写的生成缩略图程序
- · 用一个留言簿说明C#操作XML的完全过程
- · 递归枚举排列、组合的C#源码
- · C#反编译微软MSDN2003的帮助文档,并将反编译结果保存到一个SQLSERVER数据库中
- · 用C#轻松在DOTNET中实现缩略图
- · c#中结构与类的区别
- · DES加密算法在C#下的实现
- · C#对XML操作:建立XML(3)
- · 上传图片画带阴影的水印.(C#)
- · Destructors in C#
- · 特洛伊木马服务器源代码(C#)
- · [C#]I/O完成端口的类定义和测试实例
- · 选择文件夹的对话框控件c#
- · C#实现Web文件的上传
- · 用C#实现生成PDF文档
- · 用C#实现生成PDF文档
- · 一个FTP客户端的C#代码
- · C# struct & class Differences
- · C++编程人员容易犯的10个C#错
- · C#冒泡算法!
- · 如何在C#的WinForm中制作饼状图和柱状图
- · 使用响应文件编译C#源文件
- · 用C#写vs插件中的一些Tip
- · 用C#生成中文汉字验证码的基本原理
- · 用托盘控制windows服务的c#实现
- · ASP.NET的实时天气及24小时天气预报(C#)
- · 使用C#代码实现增加用户帐号
- · 用c#写的smtp邮件发送类
- · C# Builder 实现POP3信箱的监视
- · 一个有KeepConnection开关的C#的Database类
- · 一个用C#写的词法分析程序
- · 利用自定义事件实现不同窗体间的通讯 -- C#篇
- · 用C#开发.NET CF 蓝牙通信模块
- · 关于C#下写的Web Service 服务在Delphi下调用时的问题
