program.cs

来自「GOF23种设计模式详细例子!附有详细的代码噢!」· CS 代码 · 共 186 行

CS
186
字号
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;

namespace BuilderExemple
{
    class Program
    {
        static void Main(string[] args)
        {
            ComputerFactory factory = new ComputerFactory();
            ComputerBuilder office = new OfficeComputerBuilder();
            factory.BuildComputer(office);
            office.Computer.ShowSystemInfo();
            ComputerBuilder game = new GameComputerBuilder();
            factory.BuildComputer(game);
            game.Computer.ShowSystemInfo();
        }
    }

    class ComputerFactory
    {
        public void 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();
        }
    }

    abstract class ComputerBuilder
    {
        protected string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        protected Computer computer;

        public Computer Computer
        {
            get { return computer; }
            set { computer = value; }
        }

        public ComputerBuilder()
        {
            computer = new Computer();
        }

        public abstract void SetupMainboard();
        public abstract void SetupCpu();
        public abstract void SetupMemory();
        public abstract void SetupHarddisk();
        public abstract void SetupVideocard();
    }

    class OfficeComputerBuilder : ComputerBuilder
    {
        public OfficeComputerBuilder()
        {
            name = "OfficeComputer";
        }

        public override void SetupMainboard()
        {
            computer.Mainboard = "Abit升技 LG-95C 主板 (Intel 945GC芯片组/LGA 775/1066MHz) ";
        }

        public override void SetupCpu()
        {
            computer.Cpu = "Intel 英特尔赛扬D 336 (2.8GHz/LGA 775/256K/533MHz)  ";
        }

        public override void SetupMemory()
        {
            computer.Memory = "Patriot博帝 DDR2 667 512MB 台式机内存";
        }

        public override void SetupHarddisk()
        {
            computer.Harddisk = "Hitachi日立 SATAII接口台式机硬盘 (80G/7200转/8M)盒装";
        }

        public override void SetupVideocard()
        {
            computer.Videocard = "主板集成";
        }
    }

    class GameComputerBuilder : ComputerBuilder
    {
        public GameComputerBuilder()
        {
            name = "GameComputer";
        }

        public override void SetupMainboard()
        {
            computer.Mainboard = "GIGABYTE技嘉 GA-965P-DS3 3.3 主板(INTEL P965 东莞产)" ;
        }

        public override void SetupCpu()
        {
            computer.Cpu = "Intel 英特尔酷睿2 E4400 (2.0GHz/LGA 775/2M/800MHz)盒装";
        }

        public override void SetupMemory()
        {
            computer.Memory = "G.SKILL 芝奇 F2-6400CL5D-2GBNQ DDR2 800 1G*2台式机内存";
        }

        public override void SetupHarddisk()
        {
            computer.Harddisk = "Hitachi日立 SATAII接口台式机硬盘 (250G/7200转/8M)盒装";
        }

        public override void SetupVideocard()
        {
            computer.Videocard = "七彩虹 逸彩8600GT-GD3 UP烈焰战神 H10 显卡 (GeForce 8600GT/256M/DDR3)支持HDMI!";
        }
    }

    class Computer
    {
        private string videocard;

        public string Videocard
        {
            get { return videocard; }
            set { videocard = value; }
        }

        private string cpu;

        public string Cpu
        {
            get { return cpu; }
            set { cpu = value; }
        }

        private string mainboard;

        public string Mainboard
        {
            get { return mainboard; }
            set { mainboard = value; }
        }

        private string memory;

        public string Memory
        {
            get { return memory; }
            set { memory = value; }
        }

        private string harddisk;

        public string Harddisk
        {
            get { return harddisk; }
            set { harddisk = value; }
        }

        public void ShowSystemInfo()
        {
            Console.WriteLine("==================SystemInfo==================");
            Console.WriteLine("CPU:" + cpu);
            Console.WriteLine("MainBoard:" + mainboard);
            Console.WriteLine("Memory:" + memory);
            Console.WriteLine("VideoCard:" + videocard);
            Console.WriteLine("HardDisk:" + harddisk);
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?