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
  • 相关阅读:
    Python之Pyautogui模块20180125《PYTHON快速上手让繁琐的工作自动化》18章
    〈Android 群英传-神兵利器〉第7章一个的寂寞与一群人的狂欢
    一,Android Studio笔记
    一、探索 Android Studio
    微服务之网关:Ocelot+Consul实现动态集群扩展
    MacOS任意降级
    微服务之注册服务与发现:Consul在Windows下安装使用
    .Net Core中使用 AutoMapper
    .Net Core中使用Swagger
    .NetCore中使用EF Core
  • 原文地址:https://www.cnblogs.com/Dabay/p/363112.html
Copyright © 2011-2022 走看看