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);
}
}
}
/// <summary>
/// 建造者模式的演变
/// 省略了指挥者角色和抽象建造者角色
/// 此时具体建造者角色扮演了指挥者和建造者两个角色
/// </summary>
public class Builder
{
// 具体建造者角色的代码
private Product product = new Product();
public void BuildPartA()
{
product.Add("PartA");
}
public void BuildPartB()
{
product.Add("PartB");
}
public Product GetProduct()
{
return product;
}
// 指挥者角色的代码
public void Construct()
{
BuildPartA();
BuildPartB();
}
}
/// <summary>
/// 产品类
/// </summary>
public class Product
{
// 产品组件集合
private IList<string> parts = new List<string>();
// 把单个组件添加到产品组件集合中
public void Add(string part)
{
parts.Add(part);
}
public void Show()
{
Console.WriteLine("产品开始在组装.......");
foreach (string part in parts)
{
Console.WriteLine("组件" + part + "已装好");
}
Console.WriteLine("产品组装完成");
}
}
// 此时客户端也要做相应调整
class Client
{
private static Builder builder;
static void Main(string[] args)
{
builder = new Builder();
builder.Construct();
Product product = builder.GetProduct();
product.Show();
Console.Read();
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有