使用介面

摘要:使用介面

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public enum 小客車種類
        {
            電動車,
            汽油車,
        }

        I小客車 我的車;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            我的車 = 買車(小客車種類.汽油車);
            我的車.加速(5);
            我的車.方向 = 轉向系統.方向.右轉;
            我的車.加速(2);
            我的車.方向 = 轉向系統.方向.左轉;
            我的車.減速(1);
            我的車.方向 = 轉向系統.方向.直行;
            我的車.減速(6);
        }

        public I小客車 買車(小客車種類 喜好)
        {
            I小客車 新車 = null;
            switch (喜好)
            {
                case 小客車種類.汽油車:
                    新車 = new 汽油車();
                    break;
                case 小客車種類.電動車:
                    新車 = new 電動車();
                    break;
            }
            return 新車;
        }

        public interface I小客車
        {
            void 加速(int 加多少);
            void 減速(int 減多少);
            轉向系統.方向 方向 { set; }
        }

        public class 電動車 : I小客車
        {
            馬達 動力馬達 = new 馬達();
            煞車系統 煞車器 = new 煞車系統();
            轉向系統 方向盤 = new 轉向系統();

            public 轉向系統.方向 方向
            {
                set { 方向盤.轉彎(value); }
            }

            public void 加速(int 加多少)
            {
                煞車器.煞車油壓 = 0;
                動力馬達.電壓 += 加多少;
            }

            public void 減速(int 減多少)
            {
                動力馬達.電壓 = 0;
                煞車器.煞車油壓 -= 減多少;
            }
        }

        public class 汽油車 : I小客車
        {
            引擎 動力引擎 = new 引擎();
            煞車系統 煞車器 = new 煞車系統();
            轉向系統 方向盤 = new 轉向系統();

            public 轉向系統.方向 方向
            {
                set { 方向盤.轉彎(value); }
            }

            public void 加速(int 加多少)
            {
                煞車器.煞車油壓 = 0;
                動力引擎.油門 += 加多少;
            }

            public void 減速(int 減多少)
            {
                動力引擎.油門 = 0;
                煞車器.煞車油壓 -= 減多少;
            }

        }

        public class 馬達
        {
            public int 電壓;
        }

        public class 引擎
        {
            public int 油門;
        }

        public class 煞車系統
        {
            public int 煞車油壓;
        }

        public class 轉向系統
        {
            public enum 方向
            {
                直行,
                右轉,
                左轉,
            }

            方向 轉向 = 方向.直行;


            public void 轉彎(方向 轉向)
            {
                switch (轉向)
                {
                    case 轉向系統.方向.直行:
                        轉向 = 方向.直行;
                        break;
                    case 轉向系統.方向.右轉:
                        轉向 = 方向.右轉;
                        break;
                    case 轉向系統.方向.左轉:
                        轉向 = 方向.左轉;
                        break;
                }
            }


        }

    }
}