zoukankan      html  css  js  c++  java
  • 设计模式 构造器

    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
  • 相关阅读:
    Linux_23 DNS 正向解析区域、反向解析区域;主/从;子域;基本安全控制
    Linux_22 加密和解密及OpenSSL
    Linux_21 日志系统、ssh服务、系统安装及系统故障排除
    Linux_20 子网划分
    Akavache简明使用指南
    Oracle存储过程解析XML内容
    docker部署微服务不支持中文字体的解决方案
    Three.js
    Three.js
    [Linux] vim状态栏配置
  • 原文地址:https://www.cnblogs.com/Dabay/p/363112.html
Copyright © 2011-2022 走看看