zoukankan      html  css  js  c++  java
  • java_可变参数构造器 Bulder模式

    package com.test1.www;
    
    class NutritionFacts {
    	//必须
    	private int servingSize;
    	private int servings;
    	//可选, Build类必须初始化
    	private int calories;
    	private int fat;
    	private int sodium;
    	private int carboohydrate;
    	
    	public int getServingSize() {
    		return servingSize;
    	}
    
    
    	public int getServings() {
    		return servings;
    	}
    
    
    	public int getCalories() {
    		return calories;
    	}
    
    
    	public int getFat() {
    		return fat;
    	}
    
    
    	public int getSodium() {
    		return sodium;
    	}
    
    
    	public int getCarboohydrate() {
    		return carboohydrate;
    	}
    
    
    	static class Builder {
    		private int servingSize;
    		private int servings;
    		private int calories=0;
    		private int fat=0;
    		private int sodium=0;
    		private int carboohydrate=0;
    
    		public Builder(int servingSize, int servings) {
    			this.servingSize = servingSize;
    			this.servings = servings;
    		}
    
    		public Builder calories(int val) {
    			calories = val;
    			return this;
    		}
    
    		public Builder fat(int val) {
    			fat = val;
    			return this;
    		}
    
    		public Builder sodium(int val) {
    			sodium = val;
    			return this;
    		}
    
    		public Builder carboohydrate(int val) {
    			carboohydrate = val;
    			return this;
    		}
    		public NutritionFacts build() {
    			return new NutritionFacts(this);
    		}
    
    	}
    
    	
    	public NutritionFacts(Builder builder){
    		servingSize = builder.servingSize;
    		 calories=builder.calories;
    		 fat=builder.fat;
    		 sodium = builder.sodium;;
    		 carboohydrate= builder.carboohydrate;
    		
    	}
    }
    
    public class Demo2 {
    	public static void main(String[] args) {
    		NutritionFacts nt = new NutritionFacts.Builder(240, 8).calories(20).carboohydrate(30).fat(20).sodium(2).build();
    		
    		System.out.println(nt.getServingSize());
    		System.out.println(nt.getServings());
    		System.out.println(nt.getCalories());
    		System.out.println(nt.getFat());
    		System.out.println(nt.getCarboohydrate());
    		System.out.println(nt.getSodium());
    	}
    }
    


  • 相关阅读:
    回答自己之前的提问!
    阅读《构建之法》第13-17章
    阅读《构建之发》10-12章
    阅读《构建之法 》8,9,10章
    Practise 5.2测试与封装(黑白盒
    Practice5.1 测试与封装5.1
    Practice4 阅读《构建之法》6-7章
    Practice3 阅读《构建之法》1-5章
    “做汉堡”之评价我的队友
    Practice2 结对子之“小学四则运算”
  • 原文地址:https://www.cnblogs.com/MarchThree/p/3720427.html
Copyright © 2011-2022 走看看