C# 设计模式 建造者模式
主程序与测试
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BuilderPattern
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("建造者模式-------------------------");
Director director = new Director();
Computer lowComputer = director.Create(new LowComputerBuilder());
Computer highComputer = director.Create(new HighComputerBuilder());
Console.WriteLine(lowComputer.ToString());
Console.WriteLine(highComputer.ToString());
Console.ReadLine();
}
}
}
1.创建产品类 Computer
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BuilderPattern
{
public class Computer
{
public string strCpu { get; set; }
public string strMemory { get; set; }
public string strMainBoard { get; set; }
public override string ToString()
{
return "CPU=" + strCpu + " Memory=" + strMemory + " MainBoard=" + strMainBoard;
}
}
}
2.创建 抽象建造者 IBuilder
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BuilderPattern
{
public interface IBuilder
{
void buildCPU();
void buildMemory();
void buildMainBoard();
Computer CreateComputer();
}
}
3.具体建造者 HighComputerBuilder
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BuilderPattern
{
public class HighComputerBuilder:IBuilder
{
private Computer highCp = new Computer();
public void buildCPU()
{
highCp.strCpu = "高配 CPU";
}
public void buildMainBoard()
{
highCp.strMainBoard = "高配 主板";
}
public void buildMemory()
{
highCp.strMemory = "高配 内存";
}
public Computer CreateComputer()
{
return highCp;
}
}
}
3.具体建造者 LowComputerBuilder
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BuilderPattern
{
public class LowComputerBuilder : IBuilder
{
private Computer lowCp = new Computer();
public void buildCPU()
{
lowCp.strCpu = "低配 CPU";
}
public void buildMainBoard()
{
lowCp.strMainBoard = "低配 主板";
}
public void buildMemory()
{
lowCp.strMemory = "低配 内存";
}
public Computer CreateComputer()
{
return lowCp;
}
}
}
4.创建 指挥者类 Director
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BuilderPattern
{
public class Director
{
public Computer Create(IBuilder builder)
{
builder.buildCPU();
builder.buildMemory();
builder.buildMainBoard();
return builder.CreateComputer();
}
}
}