zoukankan      html  css  js  c++  java
  • 建造者模式详解

    定义:将一个复杂的构建与他的表示分离,使得同样的构建过程可以创建不同的表示.

    public class Computer {
        private String cpu;
        private String mainBoard;
        private String ram;
    
        public String getCpu() {
            return cpu;
        }
    
        public void setCpu(String cpu) {
            this.cpu = cpu;
        }
    
        public String getMainBoard() {
            return mainBoard;
        }
    
        public void setMainBoard(String mainBoard) {
            this.mainBoard = mainBoard;
        }
    
        public String getRam() {
            return ram;
        }
    
        public void setRam(String ram) {
            this.ram = ram;
        }
    
        public static class  Builder{
            private String cpu;
            private String mainBoard;
            private String ram;
    
            public String getCpu() {
                return cpu;
            }
    
            public Builder setCpu(String cpu) {
                this.cpu = cpu;
                return this;
            }
    
            public String getMainBoard() {
                return mainBoard;
            }
    
            public Builder setMainBoard(String mainBoard) {
                this.mainBoard = mainBoard;
                return this;
            }
    
            public String getRam() {
                return ram;
            }
    
            public Builder setRam(String ram) {
                this.ram = ram;
                return this;
            }
    
            public Computer create(){
                Computer computer = new Computer();
                computer.setRam(ram);
                computer.setMainBoard(mainBoard);
                computer.setCpu(cpu);
                return computer;
            }
        }
    }

    将computer的构建都放在builder中去构建。

    Test:

    public class Test {
        public static void main(String[]args){
    
            Computer computer = new Computer.Builder()
                    .setCpu("cpu")
                    .setMainBoard("mainborad")
                    .setRam("ram")
                    .create();
        }
    }
  • 相关阅读:
    P1582 倒水 (二进制)
    P2014 选课 (树形动规)
    多项式前置技能——复数
    P3694 邦邦的大合唱站队 (状压DP)
    P1754 球迷购票问题 (卡特兰数,递推)
    [SCOI2003]字符串折叠 (区间DP)
    [SDOI2008]仪仗队 (欧拉函数)
    4-字符串
    3.输出,输入,基本数据类型
    2.栈,堆,寄存器的理解
  • 原文地址:https://www.cnblogs.com/sharkchao/p/10274046.html
Copyright © 2011-2022 走看看