Java設(shè)計(jì)模式之創(chuàng)建者模式簡(jiǎn)介
Java的創(chuàng)建者模式與工廠模式有點(diǎn)類似,不過(guò)關(guān)注點(diǎn)不同。工廠模式往往只關(guān)心你要的是什么,而不關(guān)心這個(gè)東西的具體細(xì)節(jié)是什么。相對(duì)而言創(chuàng)建模式則是關(guān)心這個(gè)東西的具體細(xì)節(jié)的創(chuàng)建。拿創(chuàng)建人物來(lái)說(shuō),我們關(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; } }
測(cè)試類如下:
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é)院整理
- 簡(jiǎn)單工廠模式_動(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)文章
Spring?Boot集成etcd的詳細(xì)過(guò)程
etcd是一個(gè)分布式鍵值存儲(chǔ)數(shù)據(jù)庫(kù),用于共享配置和服務(wù)發(fā)現(xiàn),etcd采用Go語(yǔ)言編寫(xiě),具有出色的跨平臺(tái)支持,很小的二進(jìn)制文件和強(qiáng)大的社區(qū),這篇文章主要介紹了SpringBoot集成etcd,需要的朋友可以參考下2023-08-08springcloud-gateway整合jwt+jcasbin實(shí)現(xiàn)權(quán)限控制的詳細(xì)過(guò)程
這篇文章主要介紹了springcloud-gateway整合jwt+jcasbin實(shí)現(xiàn)權(quán)限控制,基于springboot+springcloud+nacos的簡(jiǎn)單分布式項(xiàng)目,項(xiàng)目交互采用openFeign框架,單獨(dú)提取出來(lái)成為一個(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框架中對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行查詢操作
這篇文章主要介紹了Java的Hibernate框架中對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行查詢操作的方法,Hibernate是Java的SSH三大web開(kāi)發(fā)框架之一,需要的朋友可以參考下2015-12-12IDEA打開(kāi)項(xiàng)目所有東西都在報(bào)紅報(bào)錯(cuò)的解決方案
這篇文章主要給大家介紹了關(guān)于IDEA打開(kāi)項(xiàng)目所有東西都在報(bào)紅報(bào)錯(cuò)的三個(gè)解決方案,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用idea具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-06-06