设计模式实践-建造者模式

 建造者模式
通过拆分一件复杂的工作 成一系列小步骤。
从而在相似工作中,复用其中一部分小步骤。
同时通过一个指挥者类,将小步骤包装成一件完整的工作。 

class Program
    {
        public static void Run()
        {
            Director director = new Director();
            Builder biler_Bridge = new BridgeBuilder();
            director.StartBuild(biler_Bridge);
            Console.WriteLine();
            Console.WriteLine();

            Builder biler_Skyscraper = new SkyscraperBuilder();
            director.StartBuild(biler_Skyscraper);
        }
    }

    /// <summary>
    /// 指挥者
    /// </summary>
    class Director
    {
        public void StartBuild(Builder builder)
        {
            builder.MakeTarget();
            builder.FeasibilityStudy();
            builder.MakePlan();
            builder.StartBuild();
            builder.HalfwayCheckUp();
            builder.ContinueBuild();
            builder.FinalCheckUp();
        }
    }

    public abstract class Builder
    {
        public virtual void MakeTarget()
        {
            Console.WriteLine("订立目标");
        }

        public virtual void FeasibilityStudy()
        {
            Console.WriteLine("可行性研究");
        }
        public virtual void MakePlan()
        {
            Console.WriteLine("指定计划");
        }

        public virtual void StartBuild()
        {
            Console.WriteLine("开始建造");

        }

        public virtual void HalfwayCheckUp()
        {
            Console.WriteLine("中期检查");

        }

        public virtual void ContinueBuild()
        {
            Console.WriteLine("继续建造");
        }

        public virtual void FinalCheckUp()
        {
            Console.WriteLine("最终验收");
        }
    }

    public class BridgeBuilder : Builder
    {
        public override void MakeTarget()
        {
            Console.WriteLine(">>>建造一座桥");
        }
        public override void StartBuild()
        {
            Console.WriteLine("开始造桥");
        }

        public override void ContinueBuild()
        {
            Console.WriteLine("继续造桥");
        }
    }
    public class SkyscraperBuilder : Builder
    {
        public override void MakeTarget()
        {
            Console.WriteLine(">>>建造一座摩天大楼");
        }
        public override void FeasibilityStudy()
        {
            Console.WriteLine("招投标");
        }
        public override void StartBuild()
        {
            Console.WriteLine("开始建楼");
        }

        public override void ContinueBuild()
        {
            Console.WriteLine("继续建楼");
        }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值