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(); } }
上一篇: ADO.NET无连接模式的详细介绍