This article mainly introduces the Builder pattern of the C# design pattern to solve the problem of configuring a computer with my wife. It briefly introduces the concept and function of the generator pattern and combines it with specific examples to analyze how the C# generator pattern solves the problem of configuring a computer. For the steps and related operation skills, friends in need can refer to the following
This article describes the example of the Builder generator mode of the C# design pattern to solve the problem of configuring a computer with my wife. Share it with everyone for your reference, the details are as follows:
1. Theoretical definition
The generator mode is also called: builder mode, it can Create a complex object in steps.
2. Application Examples
Description of requirements: Now that I have paid my salary, I plan to go to Gangding Bainaohui to configure a computer for my wife.
OK, take the BRT and set off.
When I reached the top of the post, a beautiful woman came to me with a smile: Sir, which brand do you like? Come and take a look!
Everyone has spoken, and it’s hard to refuse such hospitality, so let’s take a look.
3. Specific coding
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
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. Memory stick
Memory stickMemory
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.Hard disk
Hard diskHardDisk
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.Graphic card
Graphic cardGraphicCard
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
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.Speaker
Speaker 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.Keyboard
KeyboardKeyboard
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Com.Design.Gof.Builder { /// <summary> /// 键盘Keyboard /// </summary> public class Keyboard { /// <summary> /// Keyboard品牌 /// </summary> public string Brand { get; set; } /// <summary> /// 键盘Keyboard系列名 /// </summary> public string SerialsName { get; set; } //其他属性........... } }
9.Mouse
MouseMouse
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Com.Design.Gof.Builder { /// <summary> /// 鼠标Mouse /// </summary> public class Mouse { /// <summary> /// Mouse品牌 /// </summary> public string Brand { get; set; } /// <summary> /// 鼠标Mouse系列名 /// </summary> public string SerialsName { get; set; } //其他属性........... } }
10. Computer configuration single 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> /// 内存条 /// </summary> public Memory Memory { get; set; } /// <summary> /// 硬盘 /// </summary> public HardDisk HardDisk { get; set; } /// <summary> /// 显卡 /// </summary> public GraphicCard GraphicCard { get; set; } /// <summary> /// 音箱 /// </summary> public Speakers Speakers { get; set; } /// <summary> /// 键盘 /// </summary> public Keyboard Keyboard { get; set; } /// <summary> /// 鼠标 /// </summary> public Mouse Mouse { get; set; } } }
11. One computer 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> /// 内存条 /// </summary> public Memory Memory { get; set; } /// <summary> /// 硬盘 /// </summary> public HardDisk HardDisk { get; set; } /// <summary> /// 显卡 /// </summary> public GraphicCard GraphicCard { get; set; } /// <summary> /// 音箱 /// </summary> public Speakers Speakers { get; set; } /// <summary> /// 键盘 /// </summary> public Keyboard Keyboard { get; set; } /// <summary> /// 鼠标 /// </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("内存条 " + Memory.Brand + "\t " + Memory.SerialsName + "系列"); Console.WriteLine("硬盘 " + 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("键盘 " + Keyboard.Brand + "\t " + Keyboard.SerialsName + "系列"); Console.WriteLine("鼠标 " + Mouse.Brand + "\t " + Mouse.SerialsName + "系列"); Console.WriteLine(); Console.WriteLine(); } } }
12. The specific configuration of a certain brand and series of products
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Com.Design.Gof.Builder.Factory; namespace Com.Design.Gof.Builder { /// <summary> /// 某一个产品的配置 /// </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> /// 具体配置,每个产品系列都有对应的产品配置单 /// </summary> public Config Cfg { get { return cfg; } } } }
13. The computer configuration sheet reads an XML file. There are three test files in total, Lenovo ThinkPad.xml, Samsung.xml, Sony.xml. Only Lenovo is shown below, and the others are downloaded with attachments
<?xml version="1.0" encoding="utf-8" ?> <products> <product Brand="lenovo" Serials="联想IdeaCentre K330"> <config> <cpu Brand="Intel">Intel 酷睿 i5 2320 </cpu> <MotherBoard Brand="华硕">华硕 H61系列</MotherBoard> <Memory Brand="金士顿">金士顿 XXXX</Memory> <HardDisk Brand="希捷">希捷1TB 7200转,SATA2</HardDisk> <GraphicCard Brand="华硕">华硕显卡XXXX</GraphicCard> <Display Brand="lenovo">联想显示器XXXX</Display> <Speakers Brand="lenovo">联想XXXX</Speakers> <Keyboard Brand="lenovo">联想键盘XXXX</Keyboard> <Mouse Brand="微软">微软鼠标XXXX</Mouse> </config> </product> <product Brand="ThinkPad" Serials="联想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="微软">微软键盘XXXX</Keyboard> <Mouse Brand="罗技">罗技鼠标XXXX</Mouse> </config> </product> <product Brand="ThinkPad" Serials="联想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="微软">微软键盘XXXX</Keyboard> <Mouse Brand="长城">长城鼠标XXXX</Mouse> </config> </product> </products>
14. A dedicated A simple tool class responsible for obtaining the computer configuration sheet
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 }; //内存Memory n.MoveToNext("Memory", ""); Brand = n.GetAttribute("Brand", ""); Serials = n.Value; cfg.Memory = new Memory { Brand = Brand, SerialsName = Serials }; //硬盘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 }; //键盘Keyboard n.MoveToNext("Keyboard", ""); Brand = n.GetAttribute("Brand", ""); Serials = n.Value; cfg.Keyboard = new Keyboard { Brand = Brand, SerialsName = Serials }; //鼠标MotherBoard n.MoveToNext("Mouse", ""); Brand = n.GetAttribute("Brand", ""); Serials = n.Value; cfg.Mouse = new Mouse { Brand = Brand, SerialsName = Serials }; return cfg; } } }
15. An interface that defines how to build a computer
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> /// 内存条 /// </summary> void BuilderMemory(Memory memory); /// <summary> /// 硬盘 /// </summary> void BuilderHardDisk(HardDisk hardDisk); /// <summary> /// 显卡 /// </summary> void BuilderGraphicCard(GraphicCard graphicCard); /// <summary> /// 音箱 /// </summary> void BuilderSpeakers(Speakers speakers); /// <summary> /// 键盘 /// </summary> void BuilderKeyboard(Keyboard keyboard); /// <summary> /// 鼠标 /// </summary> void BuilderMouse(Mouse mouse); /// <summary> /// 获取组装好的电脑 /// </summary> /// <returns></returns> Computer GetComputer(); } }
16.Lenovo Computer
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;//某个产品系列的具体产品 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.组装 内存条 /// </summary> /// <param name="display"></param> public void BuilderMemory(Memory memory) { computer.Memory = memory; } /// <summary> ///4.组装 硬盘 /// </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.组装 键盘 /// </summary> /// <param name="display"></param> public void BuilderKeyboard(Keyboard keyboard) { computer.Keyboard = keyboard; } /// <summary> /// 9.组装 鼠标 /// </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--内存条 BuilderMemory(Serials.Cfg.Memory); //步骤4--硬盘 BuilderHardDisk(Serials.Cfg.HardDisk); //步骤5--显卡 BuilderGraphicCard(Serials.Cfg.GraphicCard); //步骤6--显示器 BuilderDisplay(Serials.Cfg.Display); //步骤7--音箱 BuilderSpeakers(Serials.Cfg.Speakers); //步骤8--键盘 BuilderKeyboard(Serials.Cfg.Keyboard); //步骤9--鼠标 BuilderMouse(Serials.Cfg.Mouse); return computer; } } }
17.Sony Computer
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;//某个产品系列的具体产品 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.组装 内存条 /// </summary> /// <param name="display"></param> public void BuilderMemory(Memory memory) { computer.Memory = memory; } /// <summary> ///4.组装 硬盘 /// </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.组装 键盘 /// </summary> /// <param name="display"></param> public void BuilderKeyboard(Keyboard keyboard) { computer.Keyboard = keyboard; } /// <summary> /// 9.组装 鼠标 /// </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--内存条 BuilderMemory(Serials.Cfg.Memory); //步骤4--硬盘 BuilderHardDisk(Serials.Cfg.HardDisk); //步骤5--显卡 BuilderGraphicCard(Serials.Cfg.GraphicCard); //步骤6--显示器 BuilderDisplay(Serials.Cfg.Display); //步骤7--音箱 BuilderSpeakers(Serials.Cfg.Speakers); //步骤8--键盘 BuilderKeyboard(Serials.Cfg.Keyboard); //步骤9--鼠标 BuilderMouse(Serials.Cfg.Mouse); return computer; } } }
18 .Samsung Computer
Samsung
##
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;//某个产品系列的具体产品 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.组装 内存条 /// </summary> /// <param name="display"></param> public void BuilderMemory(Memory memory) { computer.Memory = memory; } /// <summary> ///4.组装 硬盘 /// </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.组装 键盘 /// </summary> /// <param name="display"></param> public void BuilderKeyboard(Keyboard keyboard) { computer.Keyboard = keyboard; } /// <summary> /// 9.组装 鼠标 /// </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--内存条 BuilderMemory(Serials.Cfg.Memory); //步骤4--硬盘 BuilderHardDisk(Serials.Cfg.HardDisk); //步骤5--显卡 BuilderGraphicCard(Serials.Cfg.GraphicCard); //步骤6--显示器 BuilderDisplay(Serials.Cfg.Display); //步骤7--音箱 BuilderSpeakers(Serials.Cfg.Speakers); //步骤8--键盘 BuilderKeyboard(Serials.Cfg.Keyboard); //步骤9--鼠标 BuilderMouse(Serials.Cfg.Mouse); return computer; } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Com.Design.Gof.Builder { /// <summary> /// 电脑厂家,销售员指导 消费者 要购买那个 品牌 的电脑 /// </summary> public enum Manufactures { Acer宏碁=1, Alienware=2,长城=3, 戴尔=4, 东芝=5, 典籍=6, 多彩=7, DCMOFA=8,ESER宇朔=9,富士通=10, 方正=11,Gateway华硕=12, 惠普=13, 海尔=14, 瀚斯宝丽=15,Intel=16, 技嘉=17,联想=18, 联想ThinkPad=19, 雷蛇=20, LG=21, 镭波=22, msi微星=23, 明唐=24,NEC=25, 苹果=26,清华=27,同方=28, 七喜=29, 七彩虹=30,神舟=31, 索尼=32, 三星=33, 松下=34, 史密斯=35, 索泰=36, 神酷=37, TerransForce=38,微软=39, 万利达=40, 新蓝=41,优派=42 } public class Salesman { /// <summary> /// 电脑配置 /// </summary> public void ShowConfig() { Builder.GetComputer().ShowConfig(); } /// <summary> /// 制造商 /// </summary> public IBuilder Builder { get; set; } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Com.Design.Gof.Builder; namespace Com.Design.Gof.Test { class Program { static void Main(string[] args) { //这位先生,请问你看中哪个型号?这边来看下吧! Salesman salesman = new Salesman(); //美女介绍的 第一台电脑 salesman.Builder = new ThinkPad(Manufactures.联想ThinkPad, "联想IdeaCentre K330"); salesman.ShowConfig(); //电脑配置 //第二台电脑 salesman.Builder = new Sony(Manufactures.索尼, "索尼E14A17ECW"); salesman.ShowConfig(); //电脑配置 //第三台电脑 salesman.Builder = new Samsung(Manufactures.三星, "三星300E4A-S0G"); salesman.ShowConfig(); //电脑配置 Console.ReadKey(); } } }
The above is the detailed content of Detailed explanation of the Builder generator mode in C# to solve the problem of configuring the computer. For more information, please follow other related articles on the PHP Chinese website!