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

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

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

 

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

测试类:

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

原文链接:http://blog.csdn.net/a107494639/article/details/7568047


» 本文链接:https://blog.apires.cn/archives/754.html
» 转载请注明来源:Java地带  » 《Java设计模式之:创建者模式》

» 本文章为Java地带整理创作,欢迎转载!转载请注明本文地址,谢谢!
» 部分内容收集整理自网络,如有侵权请联系我删除!

» 订阅本站:https://blog.apires.cn/feed/

标签: Java设计模式, 创建者模式

添加新评论