Java建立和銷毀對象的幾種方式__Java

來源:互聯網
上載者:User
建立對象的幾種方式 構造器 靜態Factory 方法 通過Builder
不直接產生想要的對象,而是讓用戶端利用所有必要的參數調用構造器,得到一個builder對象,然後用戶端在builder對象上調用類似於setter的方法,來設定每個選擇性參數,最後在用戶端調用無參的build()方法來產生對象。下面是一個簡單的樣本:
//builder patternpublic class NutritionFacts{    private final int servingSize;    private final int servings;    private final int calories;    private final int fat;    private final int sodium;    private final int carbohydrate;    public static class Builder{        //required        private final int servingSize;        private final int servings;        //optional        private int calories =0;        private int fat =0;        private int sodium =0;        private int carbohydrate =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 carbohydrate(int val){            carbohydrate=val;            return this;        }        //build 構造對象        public NutritionFacts build(){            return new NutritionFacts(this);        }    }    private NutritionFacts(Builder builder){        servingSize = builder.servingSize;        servings = builder.servings;        calories = builder.calories;        fat = builder.fat;        sodium = builder.sodium;        carbohydrate = builder.carbohydrate;    }}//用戶端調用NutritionFacts cocaCola = new NutritionFacts.Builder(20, 8).calories(100).sodium(35).carbohydrate(27).build();

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.