C#设计模式之建造者(Builder)模式示例源代码

王朝c#·作者佚名  2006-01-09
宽屏版  字体: |||超大  

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);

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有