【设计模式】4.建造者模式

说明:将很多事情,一件一件的按顺序组装形成,StringBuilding就是建造者模式。

场景:当一个流程由很多功能组成,可以直接使用,然后每个实现就好。

实现:

 public class Customer
    {
        public void buy()
        {
            //客户来组装1台电脑
            zhihui boss = new zhihui();//老板
            lingjian emp1 = new lingjian_1();//员工1
            boss.gongzuo(emp1);//老板指挥
            zuzhuang zz = emp1.getComputer();//员工1组装
            zz.show();//组装完成
        }
    }

    /// <summary>
    /// 组装电脑需要的步骤,这里只组装了cpu,硬盘
    /// </summary>
    public abstract class lingjian
    {
        public abstract void cpu();
        public abstract void disk();

        public abstract zuzhuang getComputer();
    }

    /// <summary>
    /// 组装的方法
    /// </summary>
    public class zuzhuang
    {
        private IList<string> qingdan = new List<string>();

        public void add(string str)
        {
            qingdan.Add(str);
        }

        public void show()
        {
            Console.WriteLine("开始组装");
            foreach(string s1 in qingdan)
            {
                Console.WriteLine(s1+"完成");
            }
        }
    }

    /// <summary>
    /// 指挥干活
    /// </summary>
    public class zhihui
    {
        public void gongzuo(lingjian lj)
        {
            lj.cpu();
            lj.disk();
            lj.getComputer();
        }
    }
    public class lingjian_1 : lingjian
    {
        zuzhuang zz = new zuzhuang();
        public override void cpu()
        {
            zz.add("cpu");
        }

        public override void disk()
        {
            zz.add("硬盘");
        }

        public override zuzhuang getComputer()
        {
            return zz;
        }
    }

 

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