繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> Asp.Net开发 >> C#设计模式之建造者(Builder)模式示例源代码

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

2007-02-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介: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...

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

}

}

}

责任编辑:admin
相关文章