//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) {