Java設(shè)計(jì)模式之創(chuàng)建者模式簡介
Java的創(chuàng)建者模式與工廠模式有點(diǎn)類似,不過關(guān)注點(diǎn)不同。工廠模式往往只關(guān)心你要的是什么,而不關(guān)心這個(gè)東西的具體細(xì)節(jié)是什么。相對而言創(chuàng)建模式則是關(guān)心這個(gè)東西的具體細(xì)節(jié)的創(chuàng)建。拿創(chuàng)建人物來說,我們關(guān)心的不僅是創(chuàng)建一個(gè)人物,還要關(guān)心他的性別,膚色和名字,則可以使用創(chuàng)建者模式。
程序?qū)嵗缦滤荆?/p>
package builder;
/**
*
* DOC 種族角色
*
*/
public class Race {
private String name;// 名字
private String skinColor;// 膚色
private String sex;// 性別
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getSkinColor() {
return this.skinColor;
}
public void setSkinColor(String skinColor) {
this.skinColor = skinColor;
}
public String getSex() {
return this.sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
package builder;
/**
*
* DOC 我們關(guān)心的不僅僅是創(chuàng)建一個(gè)人物,還要關(guān)心其特征的創(chuàng)建
*
*/
public class RaceBuilder {
private Race race;
/**
* DOC 創(chuàng)建一個(gè)種族
*
* @return
*/
public RaceBuilder builder() {
this.race = new Race();
return this;
}
/**
* DOC 取名字
*
* @return
*/
public RaceBuilder setName(String name) {
this.race.setName(name);
return this;
}
/**
* DOC 選擇性別
*
* @return
*/
public RaceBuilder setSex(String sex) {
this.race.setSex(sex);
return this;
}
/**
* DOC 選擇膚色
*
* @return
*/
public RaceBuilder setSkinColor(String skinColor) {
this.race.setSkinColor(skinColor);
return this;
}
/**
*
* DOC 返回這個(gè)創(chuàng)建好的種族
*
* @return
*/
public Race create() {
return this.race;
}
}
測試類如下:
package builder;
public class Main {
public static void main(String[] args) {
Race race = new RaceBuilder().builder().setName("張三").setSex("男").setSkinColor("白色").create();
}
}
- 5種Java經(jīng)典創(chuàng)建型模式詳解
- Java設(shè)計(jì)模式之觀察者模式_動力節(jié)點(diǎn)Java學(xué)院整理
- Java設(shè)計(jì)模式之命令模式_動力節(jié)點(diǎn)Java學(xué)院整理
- 建造者模式_動力節(jié)點(diǎn)Java學(xué)院整理
- 單例模式垃圾回收_動力節(jié)點(diǎn)Java學(xué)院整理
- JAVA 枚舉單例模式及源碼分析的實(shí)例詳解
- 工廠模式_動力節(jié)點(diǎn)Java學(xué)院整理
- 簡單工廠模式_動力節(jié)點(diǎn)Java學(xué)院整理
- 工廠方法模式_動力節(jié)點(diǎn)Java學(xué)院整理
- Java創(chuàng)建類模式_動力節(jié)點(diǎn)Java學(xué)院整理
相關(guān)文章
JAVA設(shè)計(jì)模式之調(diào)停者模式詳解
這篇文章主要介紹了JAVA設(shè)計(jì)模式之調(diào)停者模式詳解,調(diào)停者模式是對象的行為模式,調(diào)停者模式包裝了一系列對象相互作用的方式,使得這些對象不必相互明顯引用,從而使它們可以較松散地耦合,需要的朋友可以參考下2015-04-04
sqlite數(shù)據(jù)庫的介紹與java操作sqlite的實(shí)例講解
今天小編就為大家分享一篇關(guān)于sqlite數(shù)據(jù)庫的介紹與java操作sqlite的實(shí)例講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02
springboot websocket集群(stomp協(xié)議)連接時(shí)候傳遞參數(shù)
這篇文章主要介紹了springboot websocket集群(stomp協(xié)議)連接時(shí)候傳遞參數(shù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
IntelliJ?IDEA快速查詢maven依賴關(guān)系圖文教程
Maven提供了來查看依賴關(guān)系,而IDE往往提供了更加便利的方式,比如Eclipse或者IDEA都有類似的功能,下面這篇文章主要給大家介紹了關(guān)于IntelliJ?IDEA快速查詢maven依賴關(guān)系的相關(guān)資料,需要的朋友可以參考下2023-11-11
MybatisPlus處理大表查詢的實(shí)現(xiàn)步驟
在實(shí)際工作中當(dāng)指定查詢數(shù)據(jù)過大時(shí),我們一般使用分頁查詢的方式一頁一頁的將數(shù)據(jù)放到內(nèi)存處理,本文主要介紹了MybatisPlus處理大表查詢的實(shí)現(xiàn)步驟,感興趣的可以了解一下2024-08-08
詳解mybatis-plus使用@EnumValue注解的方式對枚舉類型的處理
這篇文章主要介紹了詳解mybatis-plus使用@EnumValue注解的方式對枚舉類型的處理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12

