• 设计模式 构造器


    Design Pattern - Builder

    一个制造个人电脑的通用的构造器:

    public class Builder
    {
        
    public virtual String BuildCPU()
        
    {
            
    return "Standard CPU";
        }

        
    public virtual String BuildDisplay()
        
    {
            
    return "Standard Display";
        }

        
    public virtual String BuildKeyboard()
        
    {
            
    return "Standard Keyboard";
        }

        
    public virtual String BuildCDRom()
        
    {
            
    return "Standard CDRom";
        }

    }

    dell / inter 各自的个人电脑配置器:
    public class DellBuilder : Builder
    {
        
    public override String BuildDisplay()
        
    {
            
    return "Dell Display";
        }

        
    public override String BuildKeyboard()
        
    {
            
    return "Dell Keyboard";
        }

    }
    public class InterBuilder : Builder
    {
        
    public override String BuildCPU()
        
    {
            
    return "Inter P4 CPU";
        }

    }
    配置出来的个人电脑(主机部分)产品:
    public class PCProduct
    {
        
    private String cpu, cdrom, keyboard;
        
    public PCProduct(String c, String d, String k)
        
    {
            
    this.cpu = c;
            
    this.cdrom = d;
            
    this.keyboard = k;
        }

        
    public void Show()
        
    {
            Console.WriteLine(
    "{0}, {1}, {2}", cpu, cdrom, keyboard);
        }

    }

    产生电脑主机产品的指导者:

    public class Director
    {
        
    public PCProduct Construct(Builder b)
        
    {
            
    return new PCProduct(b.BuildCPU(), b.BuildDisplay(), b.BuildKeyboard());
        }

    }
    测试程序:
    public static void Main()
    {
        Builder b 
    = new DellBuilder();
        Director d 
    = new Director();
        PCProduct p 
    = d.Construct(b);
        p.Show();
        b 
    = new InterBuilder();
        p
    = d.Construct(b);
        p.Show();
        Console.ReadLine();
    }

    Builder Demo
  • 相关阅读:
    Leetcode 647 回文子串
    计算机专业课程——答案搜集
    Centos搭建go环境以及go入门
    android studio实现圆角的button
    关于区块链的认识和看法
    LeetCode 96. 不同的二叉搜索树
    LeetCode 120. Triangle (三角形最小路径和)详解
    LeetCode 64最小路径和
    微信发起摄像头接口请求 上传头像 图片
    Vue解决项目白屏以及(反向代理)
  • 原文地址:https://www.cnblogs.com/Dabay/p/363112.html
Copyright © 2020-2023  润新知