C#设计模式之建造者(Builder)模式示例源代码
2008-02-23 05:27:03来源:互联网 阅读 ()
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);
}
}
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇: C 箴言:考虑可选的虚拟函数的替代方法
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash