java 设计模式之八-创建者模式

来源:互联网 发布:淘宝推广宝贝教程视频 编辑:程序博客网 时间:2024/05/18 00:35

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

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();    }}


原创粉丝点击