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

发表于:2007-06-21来源:作者:点击数: 标签:
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

   

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

}

}

}

原文转自:http://www.ltesting.net

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)