Java設計模式之:創建者模式
作者:a107494639
創建者模式和工廠模式有點類似,不過關注點不同。工廠模式往往只關心你要的是什么,二不關心這個東西的具體細節是什么。而創建模式則關心的是這個東西的具體細節的創建。
創建者模式和工廠模式有點類似,不過關注點不同。工廠模式往往只關心你要的是什么,二不關心這個東西的具體細節是什么。而創建模式則關心的是這個東西的具體細節的創建。拿創建人物來說,我們關心的不僅是創建一個人物,還要關心他的性別,膚色和名字,則可以使用創建者模式:
- 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 我們關心的不僅僅是創建一個人物,還要關心其特征的創建
- *
- */
- public class RaceBuilder {
- private Race race;
- /**
- * DOC 創建一個種族
- *
- * @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 返回這個創建好的種族
- *
- * @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();
- }
- }
原文鏈接:http://blog.csdn.net/a107494639/article/details/7568047
【編輯推薦】
責任編輯:林師授
來源:
a107494639的博客