国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

利用Builder方式創(chuàng)建對象示例代碼

2024-07-10 12:48:38
字體:
供稿:網(wǎng)友

前言

在創(chuàng)建對象需要初始化數(shù)據(jù),數(shù)據(jù)參數(shù)不容易區(qū)別,可傳可不傳的時候,可以考慮使用Builder建造方法創(chuàng)建。每每當(dāng)看到別人寫的用Bulder方式來調(diào)用,就覺得so cool,那就自己也來用Builder方式創(chuàng)建對象吧。

下面話不多說了,來一起看看詳細的介紹吧

現(xiàn)在要錄入一系列人員的基本信息的示例:

創(chuàng)建Person類

public class Person {private String name;private int age;private float height;private float weight;public Person(String name, int age, float height, float weight) {this.name = name;this.age = age;this.height = height;this.weight = weight;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public float getHeight() {return height;}public void setHeight(float height) {this.height = height;}public float getWeight() {return weight;}public void setWeight(float weight) {this.weight = weight;}}

那么創(chuàng)建對象就是這樣,后面參數(shù)不容易看出表示的是什么,可讀性不強

new Person("馮提莫",18,150,43);new Person("溫婉",17,164,48);

用Builder模式進行改造

創(chuàng)建一個Builder類,屬性和Person類一樣,加上SetXxx()方法

static class Builder{private String name;private int age;private float height;private float weight;public void setName(String name) {this.name = name;}public void setAge(int age) {this.age = age;}public void setHeight(float height) {this.height = height;}public void setWeight(float weight) {this.weight = weight;}}

將Person的構(gòu)造方法改為傳入Builder對象,將Builder對象的屬性值都賦予Person對象

public Person(Builder builder){this.name = builder.name;this.age = builder.age;this.height = builder.height;this.weight = builder.weight;}

改造Builder類,關(guān)鍵步驟是將各個set方法返回Builder類對象,這樣就能繼續(xù)愉快地連續(xù)調(diào)用set方法了,最后調(diào)用build()創(chuàng)建方法返回Person對象。

static class Builder{private String name;private int age;private float height;private float weight;public Builder setName(String name) {this.name = name;return this;}public Builder setAge(int age) {this.age = age;return this;}public Builder setHeight(float height) {this.height = height;return this;}public Builder setWeight(float weight) {this.weight = weight;return this;}public Person build(){return new Person(this);}}

將各個set方法的返回值類型改為Builder,每次都返回builder對象,這樣才能將set方法實現(xiàn)連續(xù)的鏈?zhǔn)秸{(diào)用。

build()方法創(chuàng)建一個person對象,會調(diào)用Person的帶參構(gòu)造方法,將builder對象的屬性依次賦予person對象。person中的屬性值就是鏈?zhǔn)秸{(diào)用set方法的各個值。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 探索| 石楼县| 阿拉善右旗| 永清县| 余干县| 太原市| 若尔盖县| 临泽县| 伊金霍洛旗| 胶州市| 鹤壁市| 北安市| 云林县| 梁河县| 甘肃省| 盐津县| 哈尔滨市| 巫山县| 丹阳市| 剑阁县| 融水| 阿荣旗| 青田县| 宜州市| 三江| 景泰县| 苍南县| 安吉县| 新乐市| 鸡泽县| 洛浦县| 贵定县| 邻水| 汕尾市| 莱芜市| 涪陵区| 杂多县| 翁牛特旗| 望城县| 望城县| 德清县|