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 } 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() public override void BuilderRam() } public class pcBuilder:Builder { public pcBuilder(string type):base(type) {} public override void BuildCpu() public override void BuilderRam()
}public class Worker { public void Construct(Builder builder) } 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); } } } |