【设计模式】18.策划者模式

说明:在有多个情况或模式情况,代替掉if-else的写法。需要一个配置,抽象角色和很多具体角色,个人感觉写起来还挺舒服的。

实现:

public abstract class ABS_shuishou
    {
        public abstract void jiaoshui();
    }

    public class geren_shuishou : ABS_shuishou
    {
        public override void jiaoshui()
        {
           //个人交税
        }
    }

    public class qiye_shuishou:ABS_shuishou
    {
        public override void jiaoshui()
        {
            //企业交税
        }
    }

    /// <summary>
    /// 角色设置
    /// </summary>
    public class jueseOption
    {
        private ABS_shuishou ss;
        public jueseOption(ABS_shuishou m)
        {
            ss = m;
        }

        public void jiaoshui()
        {
            ss.jiaoshui();//可以控制到底谁交税?
        }
    }

    public class test
    {
        public void start()
        {
            jueseOption geren = new jueseOption(new geren_shuishou());
            geren.jiaoshui();

            jueseOption qiye = new jueseOption(new qiye_shuishou());
            qiye.jiaoshui();
        }
    }
原文地址:https://www.cnblogs.com/laokchen/p/13544113.html