zoukankan      html  css  js  c++  java
  • 建造者模式总结与代码模板

    /**
     * @author 左五六
     * @Date 2020/9/9 10:07
     */
    
    
    /**
     * 建造者模式(重点)
     * 1、静态内部类,含必选参数的构造器
     * 2、静态内部类Builder包含所有的原实例的所有属性
     * 3、set方法返回Builder实例
     * 4、原实例类里面包含有一个私有的构造方法传进来的是builder实例
     * 5、最后在静态Builder里面提供一个build方法,return new 实例(this)
     *
     * */
    
    public class Computer {
    
        private String cpu;//1,表示必须
        private String ram;//1
        private int usbCount;//2
        private String keyBoard;//2
        private String display;//2
    
        //提供了一个私有的构造方法,供本类里面调用
        private Computer(Builder builder){
            this.cpu = builder.cpu;
            this.display = builder.display;
            this.keyBoard = builder.keyBoard;
            this.ram = builder.ram;
            this.usbCount = builder.usbCount;
        }
    
        public static class Builder{
            private String cpu;//1,表示必须
            private String ram;//1
            private int usbCount;//2
            private String keyBoard;//2
            private String display;//2
    
            //必选参数通过builder的构造函数来指定
            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;
            }
    
            //提供build方法返回computer实例
            public Computer build(){
                return new Computer(this);
            }
    
        }
    
    }
    

      参考:https://zhuanlan.zhihu.com/p/58093669

  • 相关阅读:
    react 常用问题总结
    vue 给element-UI库添加按需加载时启动项目时 babel-preset-es2015 报错
    前端使用 jquery.base64.js 进行加密、解密十分方便
    CommonJS规范与AMD/CMD规范总结
    彻底搞懂Websocket原理
    调用图灵API V2 遇到的坑
    前端html页面,手机查看
    关于原生js的节点兼容性
    数据类型检测方法
    一位大佬关于js去重问题的研究
  • 原文地址:https://www.cnblogs.com/dashenaichicha/p/13637331.html
Copyright © 2011-2022 走看看