C# 建造者模式(Builder)

     
今天正是让人不适的一样天,早上来看老爸发的自拍,他平面子的憔悴,心里发生说非发生之难过。
自从出差的话,还没有被他从过电话,于是急忙将起电话及他寒暄几词,得知他巧结束一段子痛苦之情丝,对他打击不小。之前不叫看好的均等段情感了的于自己的想象还要抢,长齐一年之希和准备在短短的几上相处就终止了,这个上吧无用失去祝福那位给老爸带来危害的总人口,只是希望老爸能赶紧走出来,调整好心气。

明亮:构建一个出品之步调是平安的,但是每个产品为各级一样步之例外而发出有不同形态。比如台球的同不良击打过程尽管是一个成品,产品的长河包括“瞄准–运杆–出杆”三个步骤。虽然自己同丁俊晖还如实施就三只步骤,但是每一样步小丁做得还较我好,所以小丁的这次击打肯定就是比自己的好。

     
项目进行还是非常缓慢,在昨天采集至需要后,今天始调整界面,下午尚深受客户催着发生排期,不用说目前自己比她们还着急,待在这边守一个月时,谁还想尽快终结这样的出差在。
本打算今天将了入库功能,重新部署一本子,又遇见机器保养停机,下午提前放假。

代码:

   
 吃完饭,请假回家之同事也等到返了,一起连续校园游,心情不好的时节失去校园走走是雅好的调剂方式。今天除了溜弯,穿过校园我们耍了一个钟头的弹子,心情还沉重。
回来的途中保持沉默,跟着前面两各跨着机械式的步子,他们齐声聊的死去活来嗨,此刻的本人却挺麻烦融入进。

using System.Collections.Generic;
using System.Windows.Forms;

namespace DesignMode.Builder
{
    public class OneBreak
    {
        IList<string> _flow = new List<string>();
        public void AddParts(string step)
        {
            _flow.Add(step);
        }

        public void Show()
        {
            foreach (string s in _flow)
            {
                MessageBox.Show(s);
            }
        }
    }

    public abstract class Break
    {
        public abstract void Aim();

        public abstract void RunStick();

        public abstract void Shot();

        public abstract OneBreak GetBreak();

    }

    public class ME_Break : Break
    {
        private OneBreak flow = new OneBreak();

        public override void Aim()
        {
           flow.AddParts(“瞄偏了”);
        }

        public override void RunStick()
        {
            flow.AddParts(“运球姿势不对”);
        }

        public override void Shot()
        {
            flow.AddParts(“发力太爱了”);
        }

        public override OneBreak GetBreak()
        {
            return flow;
        }
    }

    public class DING_Break : Break
    {
        private OneBreak flow = new OneBreak();

        public override void Aim()
        {
            flow.AddParts(“瞄得不行准”);
        }

        public override void Shot()
        {
            flow.AddParts(“发力刚刚好”);
        }

        public override void RunStick()
        {
            flow.AddParts(“运球很正式”);
        }

        public override OneBreak GetBreak()
        {
            return flow;
        }
    }

    //固定步骤类,相当给建指挥者
    public class FixStep
    {
        public void RunStep(Break _break)
        {
            _break.Aim();
            _break.RunStick();
            _break.Shot();
        }
    }}

客户端代码:

        private void btn_Builder_Click(object sender, EventArgs e)
        {
            //列出不同建造者
            ME_Break me = new ME_Break();
            DING_Break ding = new DING_Break();

            //告诉组织者用哪个来构筑
            FixStep step = new FixStep();
            step.RunStep(ding);
            //建造就后再度取得建造对象
            OneBreak flow = ding.GetBreak();
            flow.Show();}