本文實(shí)例講述了C#設(shè)計(jì)模式之Builder生成器模式解決帶老婆配置電腦問(wèn)題。分享給大家供大家參考,具體如下:
一、理論定義
生成器模式 又叫:建造者模式,它 可以 把一個(gè) 復(fù)雜的對(duì)象,分步驟創(chuàng)建。
二、應(yīng)用舉例
需求描述:話(huà)說(shuō)發(fā)工資了,打算去崗頂百腦匯  給老婆配置一臺(tái)電腦。
OK,坐著B(niǎo)RT,就出發(fā)了。
到崗頂,一美女撲面而來(lái),面帶微笑:先生,請(qǐng)問(wèn)看中那個(gè)品牌,過(guò)來(lái)看一下嘛!
人家都開(kāi)口了,盛情難卻,就看下吧。
三、具體編碼
1.CPU
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  /// <summary>  /// CPU  /// </summary>  public class CPU  {    /// <summary>    /// CPU品牌    /// </summary>    public string Brand { get; set; }    /// <summary>    /// CPU系列名    /// </summary>    public string SerialsName { get; set; }    //其他屬性...........  }}2.主板
主板MotherBoard
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  /// <summary>  /// 主板  /// </summary>  public class MotherBoard  {    /// <summary>    /// 主板品牌    /// </summary>    public string Brand { get; set; }    /// <summary>    /// 主板系列名    /// </summary>    public string SerialsName { get; set; }    //其他屬性...........  }}3.內(nèi)存條
內(nèi)存條Memory
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  /// <summary>  /// Memory  /// </summary>  public class Memory  {    /// <summary>    /// Memory品牌    /// </summary>    public string Brand { get; set; }    /// <summary>    /// Memory系列名    /// </summary>    public string SerialsName { get; set; }    //其他屬性...........  }}4.硬盤(pán)
硬盤(pán)HardDisk
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  /// <summary>  /// HardDisk  /// </summary>  public class HardDisk  {    /// <summary>    /// HardDisk品牌    /// </summary>    public string Brand { get; set; }    /// <summary>    /// HardDisk系列名    /// </summary>    public string SerialsName { get; set; }    //其他屬性...........  }}5.顯卡
顯卡GraphicCard
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  /// <summary>  ///顯卡 GraphicCard  /// </summary>  public class GraphicCard  {    /// <summary>    /// 顯卡GraphicCard品牌    /// </summary>    public string Brand { get; set; }    /// <summary>    /// 顯卡GraphicCard系列名    /// </summary>    public string SerialsName { get; set; }    //其他屬性...........  }}6.顯示器
顯示器Display
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  /// <summary>  /// Display  /// </summary>  public class Display  {    /// <summary>    /// 顯示器品牌    /// </summary>    public string Brand { get; set; }   /// <summary>   /// 系列名   /// </summary>   public string SerialsName { get; set; }    //其他屬性...........  }}7.音箱
音箱Speakers
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  /// <summary>  /// 音箱Speakers  /// </summary>  public class Speakers  {    /// <summary>    /// Speakers品牌    /// </summary>    public string Brand { get; set; }    /// <summary>    /// Speakers系列名    /// </summary>    public string SerialsName { get; set; }    //其他屬性...........  }}8.鍵盤(pán)
鍵盤(pán)Keyboard
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  /// <summary>  /// 鍵盤(pán)Keyboard  /// </summary>  public class Keyboard  {    /// <summary>    /// Keyboard品牌    /// </summary>    public string Brand { get; set; }    /// <summary>    /// 鍵盤(pán)Keyboard系列名    /// </summary>    public string SerialsName { get; set; }    //其他屬性...........  }}9.鼠標(biāo)
鼠標(biāo)Mouse
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  /// <summary>  /// 鼠標(biāo)Mouse  /// </summary>  public class Mouse  {    /// <summary>    /// Mouse品牌    /// </summary>    public string Brand { get; set; }    /// <summary>    /// 鼠標(biāo)Mouse系列名    /// </summary>    public string SerialsName { get; set; }    //其他屬性...........  }}10.電腦配置單Config
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  public class Config  {    /// <summary>    /// CPU    /// </summary>    public CPU CPU { get; set; }    /// <summary>    /// 顯示器    /// </summary>    public Display Display { get; set; }    /// <summary>    /// 主板    /// </summary>    public MotherBoard MotherBoard { get; set; }    /// <summary>    /// 內(nèi)存條    /// </summary>    public Memory Memory { get; set; }    /// <summary>    /// 硬盤(pán)    /// </summary>    public HardDisk HardDisk { get; set; }    /// <summary>    /// 顯卡    /// </summary>    public GraphicCard GraphicCard { get; set; }    /// <summary>    /// 音箱    /// </summary>    public Speakers Speakers { get; set; }    /// <summary>    /// 鍵盤(pán)    /// </summary>    public Keyboard Keyboard { get; set; }    /// <summary>    /// 鼠標(biāo)    /// </summary>    public Mouse Mouse { get; set; }  }}11.一臺(tái)電腦Computer
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  /// <summary>  /// 電腦  /// </summary>  public class Computer  {    /// <summary>    /// CPU    /// </summary>    public CPU CPU { get; set; }    /// <summary>    /// 顯示器    /// </summary>    public Display Display { get; set; }     /// <summary>    /// 主板    /// </summary>    public MotherBoard MotherBoard { get; set; }    /// <summary>    /// 內(nèi)存條    /// </summary>    public Memory Memory { get; set; }    /// <summary>    /// 硬盤(pán)    /// </summary>    public HardDisk HardDisk { get; set; }    /// <summary>    /// 顯卡    /// </summary>    public GraphicCard GraphicCard { get; set; }    /// <summary>    /// 音箱    /// </summary>    public Speakers Speakers { get; set; }    /// <summary>    /// 鍵盤(pán)    /// </summary>    public Keyboard Keyboard { get; set; }    /// <summary>    /// 鼠標(biāo)    /// </summary>    public Mouse Mouse { get; set; }    /// <summary>    /// 電腦品牌廠商    /// </summary>    public Manufactures Manufactures { get; set; }    /// <summary>    /// 屬于的系列    /// </summary>    public string Serials{ get; set; }    /// <summary>    /// 顯示電腦配置    /// </summary>    public void ShowConfig()    {      Console.WriteLine(Manufactures +"/t"+ Serials+"  系列的配置如下:");      Console.WriteLine("--------------------------------------------------");      Console.WriteLine("配件   品牌/t   系列");      Console.WriteLine("CPU   " + CPU.Brand + "/t " + CPU.SerialsName + "系列");      Console.WriteLine("主板   " + MotherBoard.Brand + "/t " + MotherBoard.SerialsName + "系列");      Console.WriteLine("內(nèi)存條  " + Memory.Brand + "/t " + Memory.SerialsName + "系列");      Console.WriteLine("硬盤(pán)   " + HardDisk.Brand + "/t " + HardDisk.SerialsName + "系列");      Console.WriteLine("顯卡   " + GraphicCard.Brand + "/t " + GraphicCard.SerialsName + "系列");      Console.WriteLine("顯示器  " + Display.Brand + "/t " + Display.SerialsName + "系列");      Console.WriteLine("音箱   " + Speakers.Brand + "/t " + Speakers.SerialsName + "系列");      Console.WriteLine("鍵盤(pán)   " + Keyboard.Brand + "/t " + Keyboard.SerialsName + "系列");      Console.WriteLine("鼠標(biāo)   " + Mouse.Brand + "/t " + Mouse.SerialsName + "系列");      Console.WriteLine(); Console.WriteLine();    }  }}12.某一品牌 某一系列 產(chǎn)品的 具體配置
using System;using System.Collections.Generic;using System.Linq;using System.Text;using Com.Design.Gof.Builder.Factory;namespace Com.Design.Gof.Builder{  /// <summary>  /// 某一個(gè)產(chǎn)品的配置  /// </summary>  public class SerialsModel  {    private Config cfg = null;    /// <summary>    /// 獲取電腦配置單    /// </summary>    /// <param name="Manufactures"></param>    /// <param name="SerialsName"></param>    public SerialsModel(Manufactures Manufactures, string SerialsName)    {      cfg= ConfigFactory.GetConfig(Manufactures, SerialsName);    }    /// <summary>    /// 具體配置,每個(gè)產(chǎn)品系列都有對(duì)應(yīng)的產(chǎn)品配置單    /// </summary>    public Config Cfg    {      get { return cfg; }    }  }}13.電腦配置單,讀取的是XML文件,一共有三個(gè)測(cè)試文件,聯(lián)想ThinkPad.xml,三星.xml,索尼.xml,下面只顯示聯(lián)想,其他的隨附件下載
<?xml version="1.0" encoding="utf-8" ?><products> <product Brand="lenovo" Serials="聯(lián)想IdeaCentre K330"> <config> <cpu Brand="Intel">Intel 酷睿 i5 2320 </cpu> <MotherBoard Brand="華碩">華碩 H61系列</MotherBoard> <Memory Brand="金士頓">金士頓 XXXX</Memory> <HardDisk Brand="希捷">希捷1TB 7200轉(zhuǎn),SATA2</HardDisk> <GraphicCard Brand="華碩">華碩顯卡XXXX</GraphicCard> <Display Brand="lenovo">聯(lián)想顯示器XXXX</Display> <Speakers Brand="lenovo">聯(lián)想XXXX</Speakers> <Keyboard Brand="lenovo">聯(lián)想鍵盤(pán)XXXX</Keyboard> <Mouse Brand="微軟">微軟鼠標(biāo)XXXX</Mouse> </config> </product> <product Brand="ThinkPad" Serials="聯(lián)想Y670P-IFI"> <config> <cpu Brand="Intel">Intel 酷睿i5 2450M </cpu> <MotherBoard Brand="華碩">華碩 H61系列</MotherBoard> <Memory Brand="金士頓">金士頓 XXXX</Memory> <HardDisk Brand="希捷">希捷500G XXXX</HardDisk> <GraphicCard Brand="華碩">華碩顯卡XXXX</GraphicCard> <Display Brand="LG">LG顯示器XXXX</Display> <Speakers Brand="漫步者">漫步者XXXX</Speakers> <Keyboard Brand="微軟">微軟鍵盤(pán)XXXX</Keyboard> <Mouse Brand="羅技">羅技鼠標(biāo)XXXX</Mouse> </config> </product> <product Brand="ThinkPad" Serials="聯(lián)想B470P-IFI"> <config> <cpu Brand="Intel">Intel 酷睿i5 2450M </cpu> <MotherBoard Brand="華碩">華碩 H61系列</MotherBoard> <Memory Brand="金士頓">金士頓 XXXX</Memory> <HardDisk Brand="希捷">希捷500G XXXX</HardDisk> <GraphicCard Brand="華碩">華碩顯卡XXXX</GraphicCard> <Display Brand="LG">LG顯示器XXXX</Display> <Speakers Brand="漫步者">漫步者XXXX</Speakers> <Keyboard Brand="微軟">微軟鍵盤(pán)XXXX</Keyboard> <Mouse Brand="長(zhǎng)城">長(zhǎng)城鼠標(biāo)XXXX</Mouse> </config> </product></products>
14.一個(gè)專(zhuān)門(mén)負(fù)責(zé)獲取電腦 配置單的 簡(jiǎn)單工具類(lèi)
using System;using System.Collections.Generic;using System.Linq;using System.Xml.Linq;using System.Xml.XPath;using System.Text;using Com.Design.Gof.Builder;using System.Xml;using System.IO;namespace Com.Design.Gof.Builder.Factory{  public class ConfigFactory  {    /// <summary>    /// 獲取電腦配置單    /// </summary>    /// <param name="manufactures">電腦廠商</param>    /// <param name="SerialName">指定系列</param>    /// <returns></returns>    public static Config GetConfig(Manufactures manufactures, string SerialName) {      Config cfg = new Config();      //從XML文件,加載電腦配置單      XDocument doc = XDocument.Parse(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"/Builder/Data/" + manufactures + ".xml"));      XPathNavigator nav=doc.CreateNavigator();      XPathNavigator n=nav.SelectSingleNode("/products/product[@Serials='" + SerialName.Trim() + "']");      n.MoveToChild("config","");      if (n == null) {        return cfg;      }      string Brand = string.Empty, Serials = string.Empty;      //CPU      n.MoveToChild("cpu", "");      Brand = n.GetAttribute("Brand", "");      Serials = n.Value;      cfg.CPU = new CPU { Brand = Brand, SerialsName = Serials };      //主板MotherBoard      n.MoveToNext("MotherBoard","");      Brand = n.GetAttribute("Brand", "");      Serials = n.Value;      cfg.MotherBoard = new MotherBoard { Brand = Brand, SerialsName = Serials };      //內(nèi)存Memory      n.MoveToNext("Memory", "");      Brand = n.GetAttribute("Brand", "");      Serials = n.Value;      cfg.Memory = new Memory { Brand = Brand, SerialsName = Serials };      //硬盤(pán)HardDisk      n.MoveToNext("HardDisk", "");      Brand = n.GetAttribute("Brand", "");      Serials = n.Value;      cfg.HardDisk = new HardDisk { Brand = Brand, SerialsName = Serials };      //顯卡GraphicCard      n.MoveToNext("GraphicCard", "");      Brand = n.GetAttribute("Brand", "");      Serials = n.Value;      cfg.GraphicCard = new GraphicCard { Brand = Brand, SerialsName = Serials };      //顯示器Display      n.MoveToNext("Display", "");      Brand = n.GetAttribute("Brand", "");      Serials = n.Value;      cfg.Display = new Display { Brand = Brand, SerialsName = Serials };      //音箱Speakers      n.MoveToNext("MotherBoard", "");      Brand = n.GetAttribute("Brand", "");      Serials = n.Value;      cfg.Speakers = new Speakers { Brand = Brand, SerialsName = Serials };      //鍵盤(pán)Keyboard      n.MoveToNext("Keyboard", "");      Brand = n.GetAttribute("Brand", "");      Serials = n.Value;      cfg.Keyboard = new Keyboard { Brand = Brand, SerialsName = Serials };      //鼠標(biāo)MotherBoard      n.MoveToNext("Mouse", "");      Brand = n.GetAttribute("Brand", "");      Serials = n.Value;      cfg.Mouse = new Mouse { Brand = Brand, SerialsName = Serials };      return cfg;    }  }}15.一個(gè)接口,定義了如何構(gòu)建一個(gè)電腦
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  public interface IBuilder  {    /// <summary>    /// CPU    /// </summary>    void BuilderCPU(CPU cpu);    /// <summary>    /// 主板    /// </summary>    void BuilderMotherBoard(MotherBoard motherBoard);    /// <summary>    /// 顯示器    /// </summary>    void BuilderDisplay(Display display);    /// <summary>    /// 內(nèi)存條    /// </summary>    void BuilderMemory(Memory memory);    /// <summary>    /// 硬盤(pán)    /// </summary>    void BuilderHardDisk(HardDisk hardDisk);    /// <summary>    /// 顯卡    /// </summary>    void BuilderGraphicCard(GraphicCard graphicCard);    /// <summary>    /// 音箱    /// </summary>    void BuilderSpeakers(Speakers speakers);    /// <summary>    /// 鍵盤(pán)    /// </summary>    void BuilderKeyboard(Keyboard keyboard);    /// <summary>    /// 鼠標(biāo)    /// </summary>    void BuilderMouse(Mouse mouse);    /// <summary>    /// 獲取組裝好的電腦    /// </summary>    /// <returns></returns>    Computer GetComputer();  }}16.聯(lián)想電腦
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  /// <summary>  /// ThinkPad品牌廠商  /// </summary>  public class ThinkPad:IBuilder  {    Computer computer = null;//電腦    SerialsModel Serials = null;//某個(gè)產(chǎn)品系列的具體產(chǎn)品    public ThinkPad(Manufactures Manufactures, string SerialsName)    {      computer = new Computer { Manufactures = Manufactures, Serials = SerialsName };      Serials = new SerialsModel(Manufactures, SerialsName);    }    #region 裝配電腦    /// <summary>    /// 1.組裝 CPU    /// </summary>    /// <param name="cpu"></param>    public void BuilderCPU(CPU cpu)    {      computer.CPU = cpu;    }    /// <summary>    /// 2.組裝 主板    /// </summary>    /// <param name="motherBoard"></param>    public void BuilderMotherBoard(MotherBoard motherBoard)    {      computer.MotherBoard = motherBoard;    }    /// <summary>    /// 3.組裝 內(nèi)存條    /// </summary>    /// <param name="display"></param>    public void BuilderMemory(Memory memory)    {      computer.Memory = memory;    }    /// <summary>    ///4.組裝 硬盤(pán)    /// </summary>    /// <param name="display"></param>    public void BuilderHardDisk(HardDisk hardDisk)    {      computer.HardDisk = hardDisk;    }    /// <summary>    /// 5.組裝 顯卡    /// </summary>    /// <param name="display"></param>    public void BuilderGraphicCard(GraphicCard graphicCard)    {      computer.GraphicCard = graphicCard;    }    /// <summary>    /// 6.組裝 顯示器    /// </summary>    /// <param name="display"></param>    public void BuilderDisplay(Display display)    {      computer.Display = display;    }    /// <summary>    /// 7.組裝 音箱    /// </summary>    /// <param name="display"></param>    public void BuilderSpeakers(Speakers speakers)    {      computer.Speakers = speakers;    }    /// <summary>    /// 8.組裝 鍵盤(pán)    /// </summary>    /// <param name="display"></param>    public void BuilderKeyboard(Keyboard keyboard)    {      computer.Keyboard = keyboard;    }    /// <summary>    /// 9.組裝 鼠標(biāo)    /// </summary>    /// <param name="display"></param>    public void BuilderMouse(Mouse mouse)    {      computer.Mouse = mouse;    }    #endregion    /// <summary>    /// 獲取組裝后的電腦    /// </summary>    /// <returns></returns>    public Computer GetComputer() {      //步驟1--CPU      BuilderCPU(Serials.Cfg.CPU);      //步驟2---主板      BuilderMotherBoard(Serials.Cfg.MotherBoard);      //步驟3--內(nèi)存條      BuilderMemory(Serials.Cfg.Memory);      //步驟4--硬盤(pán)      BuilderHardDisk(Serials.Cfg.HardDisk);      //步驟5--顯卡      BuilderGraphicCard(Serials.Cfg.GraphicCard);      //步驟6--顯示器      BuilderDisplay(Serials.Cfg.Display);      //步驟7--音箱      BuilderSpeakers(Serials.Cfg.Speakers);      //步驟8--鍵盤(pán)      BuilderKeyboard(Serials.Cfg.Keyboard);      //步驟9--鼠標(biāo)      BuilderMouse(Serials.Cfg.Mouse);      return computer;    }  }}17.索尼電腦
Sony
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  /// <summary>  /// Sony索尼品牌廠商  /// </summary>  public class Sony:IBuilder  {    Computer computer = null;//電腦    SerialsModel Serials = null;//某個(gè)產(chǎn)品系列的具體產(chǎn)品    public Sony(Manufactures Manufactures, string SerialsName)    {      computer = new Computer { Manufactures = Manufactures, Serials = SerialsName };      Serials = new SerialsModel(Manufactures, SerialsName);    }    #region 裝配電腦    /// <summary>    /// 1.組裝 CPU    /// </summary>    /// <param name="cpu"></param>    public void BuilderCPU(CPU cpu)    {      computer.CPU = cpu;    }    /// <summary>    /// 2.組裝 主板    /// </summary>    /// <param name="motherBoard"></param>    public void BuilderMotherBoard(MotherBoard motherBoard)    {      computer.MotherBoard = motherBoard;    }    /// <summary>    /// 3.組裝 內(nèi)存條    /// </summary>    /// <param name="display"></param>    public void BuilderMemory(Memory memory)    {      computer.Memory = memory;    }    /// <summary>    ///4.組裝 硬盤(pán)    /// </summary>    /// <param name="display"></param>    public void BuilderHardDisk(HardDisk hardDisk)    {      computer.HardDisk = hardDisk;    }    /// <summary>    /// 5.組裝 顯卡    /// </summary>    /// <param name="display"></param>    public void BuilderGraphicCard(GraphicCard graphicCard)    {      computer.GraphicCard = graphicCard;    }    /// <summary>    /// 6.組裝 顯示器    /// </summary>    /// <param name="display"></param>    public void BuilderDisplay(Display display)    {      computer.Display = display;    }    /// <summary>    /// 7.組裝 音箱    /// </summary>    /// <param name="display"></param>    public void BuilderSpeakers(Speakers speakers)    {      computer.Speakers = speakers;    }    /// <summary>    /// 8.組裝 鍵盤(pán)    /// </summary>    /// <param name="display"></param>    public void BuilderKeyboard(Keyboard keyboard)    {      computer.Keyboard = keyboard;    }    /// <summary>    /// 9.組裝 鼠標(biāo)    /// </summary>    /// <param name="display"></param>    public void BuilderMouse(Mouse mouse)    {      computer.Mouse = mouse;    }    #endregion    /// <summary>    /// 獲取組裝后的電腦    /// </summary>    /// <returns></returns>    public Computer GetComputer() {      //步驟1--CPU      BuilderCPU(Serials.Cfg.CPU);      //步驟2---主板      BuilderMotherBoard(Serials.Cfg.MotherBoard);      //步驟3--內(nèi)存條      BuilderMemory(Serials.Cfg.Memory);      //步驟4--硬盤(pán)      BuilderHardDisk(Serials.Cfg.HardDisk);      //步驟5--顯卡      BuilderGraphicCard(Serials.Cfg.GraphicCard);      //步驟6--顯示器      BuilderDisplay(Serials.Cfg.Display);      //步驟7--音箱      BuilderSpeakers(Serials.Cfg.Speakers);      //步驟8--鍵盤(pán)      BuilderKeyboard(Serials.Cfg.Keyboard);      //步驟9--鼠標(biāo)      BuilderMouse(Serials.Cfg.Mouse);      return computer;    }  }}18.三星電腦
三星
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  /// <summary>  /// Samsung索尼品牌廠商  /// </summary>  public class Samsung:IBuilder  {    Computer computer = null;//電腦    SerialsModel Serials = null;//某個(gè)產(chǎn)品系列的具體產(chǎn)品    public Samsung(Manufactures Manufactures, string SerialsName)    {      computer = new Computer { Manufactures = Manufactures, Serials = SerialsName };      Serials = new SerialsModel(Manufactures, SerialsName);    }    #region 裝配電腦    /// <summary>    /// 1.組裝 CPU    /// </summary>    /// <param name="cpu"></param>    public void BuilderCPU(CPU cpu)    {      computer.CPU = cpu;    }    /// <summary>    /// 2.組裝 主板    /// </summary>    /// <param name="motherBoard"></param>    public void BuilderMotherBoard(MotherBoard motherBoard)    {      computer.MotherBoard = motherBoard;    }    /// <summary>    /// 3.組裝 內(nèi)存條    /// </summary>    /// <param name="display"></param>    public void BuilderMemory(Memory memory)    {      computer.Memory = memory;    }    /// <summary>    ///4.組裝 硬盤(pán)    /// </summary>    /// <param name="display"></param>    public void BuilderHardDisk(HardDisk hardDisk)    {      computer.HardDisk = hardDisk;    }    /// <summary>    /// 5.組裝 顯卡    /// </summary>    /// <param name="display"></param>    public void BuilderGraphicCard(GraphicCard graphicCard)    {      computer.GraphicCard = graphicCard;    }    /// <summary>    /// 6.組裝 顯示器    /// </summary>    /// <param name="display"></param>    public void BuilderDisplay(Display display)    {      computer.Display = display;    }    /// <summary>    /// 7.組裝 音箱    /// </summary>    /// <param name="display"></param>    public void BuilderSpeakers(Speakers speakers)    {      computer.Speakers = speakers;    }    /// <summary>    /// 8.組裝 鍵盤(pán)    /// </summary>    /// <param name="display"></param>    public void BuilderKeyboard(Keyboard keyboard)    {      computer.Keyboard = keyboard;    }    /// <summary>    /// 9.組裝 鼠標(biāo)    /// </summary>    /// <param name="display"></param>    public void BuilderMouse(Mouse mouse)    {      computer.Mouse = mouse;    }    #endregion    /// <summary>    /// 獲取組裝后的電腦    /// </summary>    /// <returns></returns>    public Computer GetComputer() {      //步驟1--CPU      BuilderCPU(Serials.Cfg.CPU);      //步驟2---主板      BuilderMotherBoard(Serials.Cfg.MotherBoard);      //步驟3--內(nèi)存條      BuilderMemory(Serials.Cfg.Memory);      //步驟4--硬盤(pán)      BuilderHardDisk(Serials.Cfg.HardDisk);      //步驟5--顯卡      BuilderGraphicCard(Serials.Cfg.GraphicCard);      //步驟6--顯示器      BuilderDisplay(Serials.Cfg.Display);      //步驟7--音箱      BuilderSpeakers(Serials.Cfg.Speakers);      //步驟8--鍵盤(pán)      BuilderKeyboard(Serials.Cfg.Keyboard);      //步驟9--鼠標(biāo)      BuilderMouse(Serials.Cfg.Mouse);      return computer;    }  }}19.美女銷(xiāo)售員,指導(dǎo)我們買(mǎi)電腦
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  /// <summary>  /// 電腦廠家,銷(xiāo)售員指導(dǎo) 消費(fèi)者 要購(gòu)買(mǎi)那個(gè) 品牌 的電腦  /// </summary>  public enum Manufactures  {    Acer宏
主站蜘蛛池模板:
璧山县|
虞城县|
南投市|
荥阳市|
沧州市|
揭阳市|
白沙|
鸡东县|
防城港市|
深水埗区|
陵水|
安福县|
乐平市|
比如县|
康定县|
铅山县|
阿坝县|
伊宁县|
克山县|
绵竹市|
湟源县|
正宁县|
通化县|
沂水县|
封开县|
松潘县|
上栗县|
久治县|
安陆市|
曲周县|
榆中县|
信阳市|
贡嘎县|
北川|
甘南县|
海口市|
嵊泗县|
拉萨市|
边坝县|
哈尔滨市|
津南区|