zoukankan      html  css  js  c++  java
  • 设计模式建造者模式

    类图

     

    源码

    package com.bulid;
    
    public class Computer {
    
        private String cpu;//必须
        private String ram;//必须
        private int usbCount;//可选
        private String keyboard;//可选
        private String display;//可选
    
        private Computer(Builder builder) {
            this.cpu = builder.cpu;
            this.ram = builder.ram;
            this.usbCount = builder.usbCount;
            this.keyboard = builder.keyboard;
            this.display = builder.display;
        }
    
        public static class Builder {
            private String cpu;//必须
            private String ram;//必须
            private int usbCount;//可选
            private String keyboard;//可选
            private String display;//可选
    
            public Builder(String cpu, String ram) {
                this.cpu = cpu;
                this.ram = ram;
            }
    
            public Builder setUsbCount(int usbCount) {
                this.usbCount = usbCount;
                return this;
            }
    
            public Builder setKeyboard(String keyboard) {
                this.keyboard = keyboard;
                return this;
            }
    
            public Builder setDisplay(String display) {
                this.display = display;
                return this;
            }
    
            public Computer builder() {
    
                return new Computer(this);
            }
    
        }
    
        @Override
        public String toString() {
            final StringBuilder sb = new StringBuilder("Computer{");
            sb.append("cpu='").append(cpu).append('\'');
            sb.append(", ram='").append(ram).append('\'');
            sb.append(", usbCount=").append(usbCount);
            sb.append(", keyboard='").append(keyboard).append('\'');
            sb.append(", display='").append(display).append('\'');
            sb.append('}');
            return sb.toString();
        }
    public static void main(String[] args) {
        // 建造正模式
        Computer computer = new Computer.Builder("因特尔", "三星")
                .setDisplay("三星24寸")
                .setKeyboard("罗技")
                .setUsbCount(2)
                .builder();
        System.out.println(computer);
    }
    }

    测试截图

     

  • 相关阅读:
    数组和json的相互转换
    cocoapods安装完第三方类库后不生成workspace
    CoreDataManager-OC版-兼容iOS10以前的版本
    CoreDataManager-Swift版-兼容iOS10以前的版本
    画虚线
    YYText-显示富文本
    删除项目中的CocoaPods
    CocoaPods的安装
    CocoaPods常用终端命令及Profile文件简单介绍
    根据字符串生成类---类的类型.self---根据字符串创建控制器对象
  • 原文地址:https://www.cnblogs.com/lx06/p/15688350.html
Copyright © 2011-2022 走看看