zoukankan      html  css  js  c++  java
  • 设计模式(十六):建造者模式

    一、定义

    将复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。

    二、实例

    抽象建造者:定义规则和流程

     public abstract  class Builder
        {
            public abstract void Order();
            public abstract void Express();
            public abstract void Receiving();
            public abstract void Review();
        }

    流程实现:

     public class ProductFlow : Builder
        {     
            public override void Order()
            {
                Console.WriteLine("下订单.");
            }
    
            public override void Express()
            {
                Console.WriteLine("配送.");
            }
    
            public override void Receiving()
            {
                Console.WriteLine("收货.");
            }
    
            public override void Review()
            {
                Console.WriteLine("评价.");
            }
        }

    此外,需要对建造者进行包装,流程包装—建造流程提供者

     public class ProductFlowProvider
        {
            private Builder builder;
            public ProductFlowProvider(Builder _builder)
            {
                builder = _builder;
            }
            public void Flow()
            {
                builder.Order();
                builder.Express();
                builder.Receiving();
                builder.Review();
            }
        }

    客户端:

    //------------------------建造者模式-----------------------
                Builder.ProductFlowProvider pfp = new Builder.ProductFlowProvider(new Builder.ProductFlow());
                pfp.Flow();
                Console.ReadKey();

    运行:

    三、总结

    适用情形:

      需要生成的复杂的产品

        需要有一定的规则和流程  

    缺点:

      建造者模式的缺点在于难于应付分步骤构建算法的需求变动

  • 相关阅读:
    C# 控制反转(IOC: Inverse Of Control) & 依赖注入(DI: Independence Inject)
    英语常见短语汇总001
    ASP.Net Web.config 中引用外部config文件
    CSS样式汇总
    RSA非对称加密算法
    排序算法【2】——快速排序
    cmake引入boost
    boost之algorithm
    tar命令
    欧拉定理
  • 原文地址:https://www.cnblogs.com/sunchong/p/5141015.html
Copyright © 2011-2022 走看看