欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-02-27 22:13:09
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();
  }
}