Skip to content

Commit 7df1257

Browse files
committed
☁️ opts Java patterns bulid
1 parent b30e544 commit 7df1257

File tree

5 files changed

+72
-4
lines changed

5 files changed

+72
-4
lines changed

src/cn/ucaner/pattern/create/builder/BuilderTest.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,23 @@
2424
public class BuilderTest {
2525

2626
public static void main(String[] args) {
27+
2728
WolverineDirector director = new WolverineDirector();
2829
XMan wolverine = director.constructWolverine(new WolverineBuilder());
2930
String lover = wolverine.getLover();
3031
String getxFactor = wolverine.getxFactor();
31-
System.out.println("Lover:"+lover+" xFactor:"+getxFactor);
32+
Integer age = wolverine.getAge();
33+
String name = wolverine.getName();
34+
System.out.println("Lover:"+lover+" xFactor:"+getxFactor+" Name:"+name+" Age:"+age);
35+
//System.gc();
36+
System.out.println(wolverine.toString());
3237
}
3338
}
39+
//Outputs
40+
//claw
41+
//Jane
42+
//Name is successfully built
43+
//Age is successfully built
44+
//Wolverine is successfully built
45+
//Lover:Jane xFactor:claw Name:Wali Age:18
46+
//cn.ucaner.pattern.create.builder.XMan@7852e922

src/cn/ucaner/pattern/create/builder/WolverineBuilder.java

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,21 +28,48 @@ public class WolverineBuilder implements XManBuilder {
2828
WolverineBuilder() {
2929
mXMan = new XMan();
3030
}
31+
32+
// need to consider
3133

34+
/* @Override
3235
public WolverineBuilder buildXFactor() {
3336
mXMan.setxFactor("claw");
3437
System.out.println(mXMan.getxFactor());
3538
return this;
36-
}
39+
}*/
40+
41+
@Override
42+
public XManBuilder buildXFactor() {
43+
mXMan.setxFactor("claw");
44+
System.out.println(mXMan.getxFactor());
45+
return this;
46+
}
3747

48+
@Override
3849
public WolverineBuilder buildLover() {
3950
mXMan.setLover("Jane");
4051
System.out.println(mXMan.getLover());
4152
return this;
4253
}
4354

44-
public XMan buildXman() {
55+
@Override
56+
public WolverineBuilder buildName() {
57+
mXMan.setName("Wali");
58+
System.out.println(mXMan.getName());
59+
return this;
60+
}
61+
62+
@Override
63+
public WolverineBuilder buildAge() {
64+
mXMan.setAge(18);
65+
System.out.println(mXMan.getAge());
66+
return this;
67+
}
68+
69+
@Override
70+
public XMan buildXman() {
4571
System.out.println("Wolverine is successfully built");
4672
return mXMan;
4773
}
74+
4875
}

src/cn/ucaner/pattern/create/builder/WolverineDirector.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ public XMan constructWolverine(WolverineBuilder wolverineBuilder) {
2727
return wolverineBuilder
2828
.buildXFactor()
2929
.buildLover()
30+
.buildName()
31+
.buildAge()
3032
.buildXman();
3133
}
3234
}

src/cn/ucaner/pattern/create/builder/XMan.java

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,33 @@
2323
*/
2424
public class XMan {
2525

26+
private String name;
27+
28+
private Integer age;
29+
2630
private String xFactor;
2731

2832
private String lover;
2933

30-
public String getxFactor() {
34+
public String getName() {
35+
return name;
36+
}
37+
38+
public XMan setName(String name) {
39+
this.name = name;
40+
return this;
41+
}
42+
43+
public Integer getAge() {
44+
return age;
45+
}
46+
47+
public XMan setAge(Integer age) {
48+
this.age = age;
49+
return this;
50+
}
51+
52+
public String getxFactor() {
3153
return xFactor;
3254
}
3355

src/cn/ucaner/pattern/create/builder/XManBuilder.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,9 @@ public interface XManBuilder {
2727

2828
XManBuilder buildLover();
2929

30+
XManBuilder buildName();
31+
32+
XManBuilder buildAge();
33+
3034
XMan buildXman();
3135
}

0 commit comments

Comments
 (0)