深入解析深入解析C#设计模式编程中对建造者模式的运用设计模式编程中对建造者模式的运用
示例示例
我们先来以这样一个场景引入:
在电脑城装机总有这样的经历。我们到了店里,先会有一个销售人员来询问你希望装的机器是怎么样的配置,他会给你一些建
议,最终会形成一张装机单。和客户确定了装机配置以后,他会把这张单字交给提货的人,由他来准备这些配件,准备完成后
交给装机技术人员。技术人员会把这些配件装成一个整机交给客户。
不管是什么电脑,它总是由CPU、内存、主板、硬盘以及显卡等部件构成的,并且装机的过程总是固定的:
把主板固定在机箱中
把CPU安装到主板上
把内存安装到主板上
把硬盘连接到主板上
把显卡安装到主板上
但是,每台兼容机的部件都各不相同的,有些配置高一点,有些配置低一点,这是变化点。对于装机技术人员来说,他不需要
考虑这些配件从哪里来的,他只需要把他们组装在一起了,这是稳定的装机流程。要把这种变化的配件和稳定的流程进行分离
就需要引入Builder模式。
示例代码
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);