建造者模式

炒一个菜要   买菜 洗菜 炒菜 上菜。

盖一个房子  要打地基 立柱子 架梁 盖屋顶。

产品虽然不同 但是生产产品的流程基本是一样的。

打比方 我们要组装电脑  电脑有 主板 cpu 硬盘 显示器  于是我们定义一个Computer类 这个类有 主板 cpu 硬盘 显示器 属性

电脑有不同的牌子 但是不同牌子也无非是 主板 cpu 硬盘 显示器 组成。

所以我们定义一个建造者抽象类,在其中定义一个电脑属性,建造者里面首先定义抽象的针对主板 cpu 硬盘 显示器  安装的抽象方法,然后我们再定义一个给这些方法排序的 总装电脑的抽象方法 Builder

针对我们不同的创建,我们继承Builder,重写其抽象类,并在其中定义一个computer属性,我们再总装电脑方法之后,返回这个Computer

我们再定义一个导演 director

    /// <summary>
    ///导演
    /// </summary>
    public class Director
    {
        public Computer Construct(Builder builder)
        {
           return builder.BuildComputer();
        }
    }

  

参考文章 圣杰 :关注产出,不关心细节,『建造者模式』

           何戈洲 设计模式系列-创建者模式  何戈洲这篇文章更详细,里面还有一些具体优化实现方式

原文地址:https://www.cnblogs.com/wholeworld/p/8087484.html