這篇文章主要介紹了java建造者模式一鍵重寫,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨着小編來一起學習學習吧
創建一個女朋友,她有很多的屬性,比如:性別,年齡,身高,體重,類型等等,雖然每個女朋友都有這些屬性,但是每個人找女朋友的要求都是不一樣的,有的人喜歡男的,有的人喜歡女的,有的喜歡胖的,不同的人可以根據自己的喜好去建造不同的女朋友,我們不需要關心她是怎麼建造的,我們只需要去指定她的屬性就行了
相比如文字解釋,我更習慣擼代碼來解釋,下面來一步步實現怎麼用java來爲你創建一個女朋友
首先定義一個女朋友類:
package nuoyanli; /** * Created by ${nuoyanli} on 2019/4/7. */ public class GirlFriend { private String sex;//性別 private int age;//年齡 private int stature;//身高 private int weight;//體重 private String type;//類型
按照我們以往的理解,要創建一個女朋友是不是要直接new出來,我們可以通過構造方法把屬性傳過去
例如:我對女朋友的要求只有一個,是女的就行,定義一個構造方法:
public GirlFriend(String sex) { this.sex = sex; }
然後再需要的時候來創建她:
GirlFriend girlFriend = new GirlFriend("女");
如果我們要求性別和身高就要定義:
public GirlFriend(String sex, int stature) { this.sex = sex; this.stature = stature; }
你想想每個人的要求都不一樣,你得創建多少個構造方法,而且參數多了,可讀性很差比如:
GirlFriend girlFriend = new GirlFriend("女",19,170,90,"聲優");
java有一個建造者模式:
建造一個GirlFriendBuilder類:
package nuoyanli; /** * Created by ${nuoyanli} on 2019/4/7. */ public class GirlFriendBuilder { String sex;//性別 int age;//年齡 int stature;//身高 int weight;//體重 String type;//類型 public GirlFriendBuilder setSex(String sex) { this.sex = sex; return this; } public GirlFriendBuilder setAge(int age) { this.age = age; return this; } public GirlFriendBuilder setStature(int stature) { this.stature = stature; return this; } public GirlFriendBuilder setWeight(int weight) { this.weight = weight; return this; } public GirlFriendBuilder setType(String type) { this.type = type; return this; } /** *返回一個GirlFriend對象 */ public GirlFriend build() { return new GirlFriend(this); } }
然後在GirlFriend類裏面構造方法傳入GirlFriendBuilder對象:
public GirlFriend(GirlFriendBuilder builder) { this.sex = builder.sex; this.age = builder.age; this.stature = builder.stature; this.weight = builder.weight; this.type = builder.type; }
然後創建的時候:
GirlFriend girlFrie1nd = new GirlFriendBuilder() .setAge(19) .setSex("女") .setType("聲優") .setStature(175) .build();
這樣就成功創建了一個女朋友,代碼的可讀性也挺高的
如果對這個女朋友不滿意,可以自定義屬性哦,由於筆者水平有限,並且找不到女朋友所以只能先new一個girFriend對象
以上所述是小編給大家介紹的java建造者模式一鍵重寫詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對神馬文庫網站的支持!