技术文章 > C#设计模式之建造者(BUILDER)模式示例源代码

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

2018-09-26 06:28

文档管理软件,文档管理系统,知识管理系统,档案管理系统的技术资料:
[code]
csharp
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);
}
}
}
[/code]