Skip to content

Commit c577ec7

Browse files
authored
建造者模式
1 parent c826afb commit c577ec7

File tree

5 files changed

+100
-0
lines changed

5 files changed

+100
-0
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package builder;
2+
3+
/**
4+
* 测试类,生产一个金刚狼
5+
* @author Chayne_Shen 2017/3/10 0010.
6+
*/
7+
public class BuilderTest {
8+
public static void main(String[] args) {
9+
WolverineDirector director = new WolverineDirector();
10+
XMan wolverine = director.constructWolverine(new WolverineBuilder());
11+
}
12+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package builder;
2+
3+
/**
4+
* 金刚狼的builder
5+
* @author Chayne_Shen 2017/3/10 0010.
6+
*/
7+
8+
public class WolverineBuilder implements XManBuilder {
9+
XMan mXMan;
10+
WolverineBuilder() {
11+
mXMan = new XMan();
12+
}
13+
14+
public WolverineBuilder buildXFactor() {
15+
mXMan.setxFactor("claw");
16+
System.out.println(mXMan.getxFactor());
17+
return this;
18+
}
19+
20+
public WolverineBuilder buildLover() {
21+
mXMan.setLover("Jane");
22+
System.out.println(mXMan.getLover());
23+
return this;
24+
}
25+
26+
public XMan buildXman() {
27+
System.out.println("Wolverine is successfully built");
28+
29+
return mXMan;
30+
}
31+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package builder;
2+
3+
/**
4+
* 控制builder生产金刚狼
5+
* @author Chayne_Shen 2017/3/10 0010.
6+
*/
7+
8+
public class WolverineDirector {
9+
public XMan constructWolverine(WolverineBuilder wolverineBuilder) {
10+
return wolverineBuilder
11+
.buildXFactor()
12+
.buildLover()
13+
.buildXman();
14+
}
15+
}

src/create/builder/XMan.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package builder;
2+
3+
/**
4+
* x战警通用属性
5+
* @author Chayne_Shen 2017/3/10 0010.
6+
*/
7+
8+
public class XMan {
9+
private String xFactor;
10+
private String lover;
11+
12+
public String getxFactor() {
13+
return xFactor;
14+
}
15+
16+
public XMan setxFactor(String xFactor) {
17+
this.xFactor = xFactor;
18+
return this;
19+
}
20+
21+
public String getLover() {
22+
return lover;
23+
}
24+
25+
public XMan setLover(String lover) {
26+
this.lover = lover;
27+
return this;
28+
}
29+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package builder;
2+
3+
/**
4+
* x战警builder
5+
* @author Chayne_Shen 2017/3/9 0009.
6+
*
7+
*/
8+
9+
public interface XManBuilder {
10+
XManBuilder buildXFactor();
11+
XManBuilder buildLover();
12+
XMan buildXman();
13+
}

0 commit comments

Comments
 (0)