程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> Java設計模式之創建者模式簡介

Java設計模式之創建者模式簡介

編輯:JAVA編程入門知識

Java的創建者模式與工廠模式有點類似,不過關注點不同。工廠模式往往只關心你要的是什麼,而不關心這個東西的具體細節是什麼。相對而言創建模式則是關心這個東西的具體細節的創建。拿創建人物來說,我們關心的不僅是創建一個人物,還要關心他的性別,膚色和名字,則可以使用創建者模式。

程序實例如下所示:

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();
  }
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved