首页 > 编程 > Java > 正文

Java设计模式之创建者模式简介

2019-11-26 15:28:08
字体:
来源:转载
供稿:网友

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();  }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表