【设计模式】14.命令模式

说明:感觉比较复杂,需要命令管理,命令,接收者,发送者来完成。而且单看,命令和接收者是绑定的。感觉要整个系统需要命令式管理才能起到很好效果

场景:1.需要可以撤销命令的。

   2.需要将命令保存到日志里,以便日后使用的。

实现:

//执行命令
    public class goOrder
    {
        private ABS_Order orderObj;

        public goOrder(ABS_Order ordObj)
        {
            orderObj = ordObj;
        }

        public void doing()
        {
            orderObj.Action();//不管说明命令,执行就行
        }
    }

    //命令抽象类
    public abstract class ABS_Order
    {
        //知道是谁接受命令了
        protected Employee ea_base;
        public ABS_Order(Employee _ea)
        {
            ea_base = _ea;
        }

        public abstract void Action();
    }

    //实现命令
    public class Order :ABS_Order
    {
        public Order(Employee _ea):base(_ea) {
        }
        public override void Action() {
            //调用执行OT
            ea_base.OT();
        }
    }

    //具体哪个接受命令,员工
    public class Employee
    {
        //叫员工去加班
        public void OT()
        {
            //实现方法
        }
    }

    public class test
    {
        public void start()
        {
            Employee e = new Employee();
            ABS_Order abso = new Order(e);

            goOrder boss = new goOrder(abso);
            boss.doing();//老板叫员工去干活,至于干什么,看命令才知道
        }
    }

 

posted on 2020-08-21 18:13  一个小目标一次坑记录  阅读(114)  评论(0编辑  收藏  举报