program.cs

来自「这是asp.net^和Visual C++Sharp编写的串并口通讯的书籍 源代」· CS 代码 · 共 113 行

CS
113
字号
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 + =
减小字号Ctrl + -
显示快捷键?