📄 program.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace _1
{
class Shop
{
public void Construct(VehicleBuilder vb)
{
vb.BuildFrame();
vb.BuildEngine();
vb.BuildWheels();
vb.BuildDoors();
}
}
// 建造者
abstract class VehicleBuilder
{
protected Vehicle vehicle;
public Vehicle Vehicle
{
get { return vehicle; }
}
abstract public void BuildFrame();
abstract public void BuildEngine();
abstract public void BuildWheels();
abstract public void BuildDoors();
}
// 具体建筑者1
class MotorCycleBuilder : VehicleBuilder
{
override public void BuildFrame()
{
vehicle = new Vehicle("摩托车");
vehicle["frame"] = "摩托车 框架";
}
override public void BuildEngine()
{
vehicle["engine"] = "500 毫升";
}
override public void BuildWheels()
{
vehicle["wheels"] = "2个车轮";
}
override public void BuildDoors()
{
vehicle["doors"] = "没有车门";
}
}
// 具体建筑者2
class CarBuilder : VehicleBuilder
{
override public void BuildFrame()
{
vehicle = new Vehicle("轿车");
vehicle["frame"] = "轿车 框架";
}
override public void BuildEngine()
{
vehicle["engine"] = "2500 毫升";
}
override public void BuildWheels()
{
vehicle["wheels"] = "4个车轮";
}
override public void BuildDoors()
{
vehicle["doors"] = "4个车门";
}
}
class Vehicle
{
private string type;
private Hashtable parts = new Hashtable();
public Vehicle(string type)
{
this.type = type;
}
public object this[string key]
{
get { return parts[key]; }
set { parts[key] = value; }
}
public void Show()
{
Console.WriteLine(" ---------------------------");
Console.WriteLine("交通工具类型: " + type);
Console.WriteLine("框架 : " + parts["frame"]);
Console.WriteLine("发动机 : " + parts["engine"]);
Console.WriteLine("车轮数量: " + parts["wheels"]);
Console.WriteLine("车门数量: " + parts["doors"]);
}
}
public class BuilderApp
{
public static void Main(string[] args)
{
Shop shop = new Shop();
VehicleBuilder builder1 = new CarBuilder();
VehicleBuilder builder2 = new MotorCycleBuilder();
// 显示创建产品
shop.Construct(builder1);
builder1.Vehicle.Show();
shop.Construct(builder2);
builder2.Vehicle.Show();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -