设计模式---命令模式

来源:互联网 发布:中国软件人才需求报告 编辑:程序博客网 时间:2024/04/29 14:55
 设计模式---命令模式

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    abstract class Order
    {
        protected General general;

        public Order(General g)
        {
            this.general = g;
        }

        public abstract void Excute();
    }

    class Fire : Order
    {
        public Fire(General g)
            : base(g)
        { }

        public override void Excute()
        {
            general.ExcuteFire();
        }
    }

    class Retreat : Order
    {
        public Retreat(General g)
            : base(g)
        { }

        public override void Excute()
        {
            general.ExcuteRetreat();
        }
    }

    class Soldier
    {
        private String name;
   
        public Soldier(string n)
        {
            this.name = n;
        }
   
        public void ExcuteFire()
        {
            Console.WriteLine(name+"开火");
        }

        public void ExcuteRetreat()
        {
            Console.WriteLine(name+"撤退");
        }
    }

    class General
    {
        private Soldier soldier;
   
        public void ExcuteFire()
        {
            soldier.ExcuteFire();
        }

        public void SetSoldier(Soldier s)
        {
            this.soldier = s;
        }

        public void ExcuteRetreat()
        {
            soldier.ExcuteRetreat();
        }
    }

    class Client
    {
        public static void Main()
        {
            General g = new General();
            Soldier s = new Soldier("张三");
            g.SetSoldier(s);
            Order o = new Fire(g);
            o.Excute();
            o = new Retreat(g);
            o.Excute();
            g.SetSoldier(new Soldier("李四"));
            o.Excute();
            Console.Read();
        }
    }
}

原创粉丝点击