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ì)模式之觀察者模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- Java設(shè)計(jì)模式之命令模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- 建造者模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- 單例模式垃圾回收_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- JAVA 枚舉單例模式及源碼分析的實(shí)例詳解
- 工廠模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- 簡單工廠模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- 工廠方法模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- Java創(chuàng)建類模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
相關(guān)文章
springcloud-gateway整合jwt+jcasbin實(shí)現(xiàn)權(quán)限控制的詳細(xì)過程
這篇文章主要介紹了springcloud-gateway整合jwt+jcasbin實(shí)現(xiàn)權(quán)限控制,基于springboot+springcloud+nacos的簡單分布式項(xiàng)目,項(xiàng)目交互采用openFeign框架,單獨(dú)提取出來成為一個(gè)獨(dú)立的model,需要的朋友可以參考下2023-02-02Java導(dǎo)出多個(gè)excel表打包到zip文件中供客戶端另存為窗口下載實(shí)現(xiàn)方法
最近的項(xiàng)目有一個(gè)導(dǎo)出匯總數(shù)據(jù)的要求,考慮到用戶軟件的差異,所以要分別導(dǎo)出xls以及xlsx并且打包提供下載,下面這篇文章主要給大家介紹了關(guān)于Java導(dǎo)出多個(gè)excel表打包到zip文件中供客戶端另存為窗口下載的實(shí)現(xiàn)方法,需要的朋友可以參考下2023-12-12在Java的Hibernate框架中對數(shù)據(jù)庫數(shù)據(jù)進(jìn)行查詢操作
這篇文章主要介紹了Java的Hibernate框架中對數(shù)據(jù)庫數(shù)據(jù)進(jìn)行查詢操作的方法,Hibernate是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下2015-12-12IDEA打開項(xiàng)目所有東西都在報(bào)紅報(bào)錯(cuò)的解決方案
這篇文章主要給大家介紹了關(guān)于IDEA打開項(xiàng)目所有東西都在報(bào)紅報(bào)錯(cuò)的三個(gè)解決方案,文中通過圖文介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用idea具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-06-06