using System; using System.Collections.Generic; using System.Text; using System.Reflection; namespace BuilderExemple { classProgram { staticvoid Main(string[] args) { ComputerFactory factory = newComputerFactory(); ComputerBuilder office = newOfficeComputerBuilder(); factory.BuildComputer(office); office.Computer.ShowSystemInfo(); ComputerBuilder game = newGameComputerBuilder(); factory.BuildComputer(game); game.Computer.ShowSystemInfo(); } } classComputerFactory { publicvoid BuildComputer(ComputerBuilder cb) { Console.WriteLine(); Console.WriteLine(">>>>>>>>>>>>>>>>>>Start Building " + cb.Name); cb.SetupMainboard(); cb.SetupCpu(); cb.SetupMemory(); cb.SetupHarddisk(); cb.SetupVideocard(); Console.WriteLine(">>>>>>>>>>>>>>>>>>Build " + cb.Name + " Completed"); Console.WriteLine(); } } abstractclassComputerBuilder { protectedstring name; publicstring Name { get { return name; } set { name = value; } } protectedComputer computer; publicComputer Computer { get { return computer; } set { computer = value; } } public ComputerBuilder() { computer = newComputer(); } publicabstractvoid SetupMainboard(); publicabstractvoid SetupCpu(); publicabstractvoid SetupMemory(); publicabstractvoid SetupHarddisk(); publicabstractvoid SetupVideocard(); } classOfficeComputerBuilder : ComputerBuilder { public OfficeComputerBuilder() { name = "OfficeComputer"; } publicoverridevoid SetupMainboard() { computer.Mainboard = "Abit升技LG-95C 主板(Intel 945GC晶片集/LGA 775/1066MHz) "; } publicoverridevoid SetupCpu() { computer.Cpu = "Intel 英特爾賽揚D 336 (2.8GHz/LGA 775/256K/533MHz) "; } publicoverridevoid SetupMemory() { computer.Memory = "Patriot博帝DDR2 667 512MB 台式機記憶體"; } publicoverridevoid SetupHarddisk() { computer.Harddisk = "Hitachi日立SATAII介面台式機硬碟(80G/7200轉/8M)盒裝"; } publicoverridevoid SetupVideocard() { computer.Videocard = "主板整合"; } } classGameComputerBuilder : ComputerBuilder { public GameComputerBuilder() { name = "GameComputer"; } publicoverridevoid SetupMainboard() { computer.Mainboard = "GIGABYTE技嘉GA-965P-DS3 3.3 主板(INTEL P965 東莞產)" ; } publicoverridevoid SetupCpu() { computer.Cpu = "Intel 英特爾酷睿E4400 (2.0GHz/LGA 775/2M/800MHz)盒裝"; } publicoverridevoid SetupMemory() { computer.Memory = "G.SKILL 芝奇F2-6400CL5D-2GBNQ DDR2 800 1G*2台式機記憶體"; } publicoverridevoid SetupHarddisk() { computer.Harddisk = "Hitachi日立SATAII介面台式機硬碟(250G/7200轉/8M)盒裝"; } publicoverridevoid SetupVideocard() { computer.Videocard = "七彩虹逸彩GT-GD3 UP烈焰戰神H10 顯卡(GeForce 8600GT/256M/DDR3)支援HDMI!"; } } classComputer { privatestring videocard; publicstring Videocard { get { return videocard; } set { videocard = value; } } privatestring cpu; publicstring Cpu { get { return cpu; } set { cpu = value; } } privatestring mainboard; publicstring Mainboard { get { return mainboard; } set { mainboard = value; } } privatestring memory; publicstring Memory { get { return memory; } set { memory = value; } } privatestring harddisk; publicstring Harddisk { get { return harddisk; } set { harddisk = value; } } publicvoid ShowSystemInfo() { Console.WriteLine("==================SystemInfo=================="); Console.WriteLine("CPU:" + cpu); Console.WriteLine("MainBoard:" + mainboard); Console.WriteLine("Memory:" + memory); Console.WriteLine("VideoCard:" + videocard); Console.WriteLine("HardDisk:" + harddisk); } } } |