首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

Java设计形式之:创建者模式

2012-10-21 
Java设计模式之:创建者模式创建者模式和工厂模式有点类,不过关注点不同。工厂模式往往只关心你要的是什么,

Java设计模式之:创建者模式

创建者模式和工厂模式有点类似,不过关注点不同。工厂模式往往只关心你要的是什么,二不关心这个东西的具体细节是什么。而创建模式则关心的是这个东西的具体细节的创建。拿创建人物来说,我们关心的不仅是创建一个人物,还要关心他的性别,肤色和名字,则可以使用创建者模式:

  1. package builder;
  2. /** *
  3. * DOC 种族角色 *
  4. */ public class Race {
  5. private String name;// 名字
  6. private String skinColor;// 肤色
  7. private String sex;// 性别
  8. public String getName() {
  9. return this.name; }
  10. public void setName(String name) {
  11. this.name = name; }
  12. public String getSkinColor() {
  13. return this.skinColor; }
  14. public void setSkinColor(String skinColor) {
  15. this.skinColor = skinColor; }
  16. public String getSex() {
  17. return this.sex; }
  18. public void setSex(String sex) {
  19. this.sex = sex; }
  20. }

  1. package builder;
  2. /** *
  3. * DOC 我们关心的不仅仅是创建一个人物,还要关心其特征的创建 *
  4. */ public class RaceBuilder {
  5. private Race race;
  6. /**
  7. * DOC 创建一个种族 *
  8. * @return */
  9. public RaceBuilder builder() { this.race = new Race();
  10. return this; }
  11. /**
  12. * DOC 取名字 *
  13. * @return */
  14. public RaceBuilder setName(String name) { this.race.setName(name);
  15. return this; }
  16. /**
  17. * DOC 选择性别 *
  18. * @return */
  19. public RaceBuilder setSex(String sex) { this.race.setSex(sex);
  20. return this; }
  21. /**
  22. * DOC 选择肤色 *
  23. * @return */
  24. public RaceBuilder setSkinColor(String skinColor) { this.race.setSkinColor(skinColor);
  25. return this; }
  26. /**
  27. * * DOC 返回这个创建好的种族
  28. * * @return
  29. */ public Race create() {
  30. return this.race; }
  31. }

测试类:

  1. package builder;
  2. public class Main {
  3. public static void main(String[] args) { Race race = new RaceBuilder().builder().setName("张三").setSex("男").setSkinColor("白色").create();
  4. }
  5. }

热点排行