Skip to content

Commit a7e66db

Browse files
committed
生成器模式
1 parent 4682088 commit a7e66db

File tree

7 files changed

+73
-0
lines changed

7 files changed

+73
-0
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.anxpp.designpattern.builder;
2+
//具体生成器
3+
public class DateBuilder1 implements IDateBuilder{
4+
private MyDate myDate;
5+
public DateBuilder1(MyDate myDate){
6+
this.myDate = myDate;
7+
}
8+
@Override
9+
public IDateBuilder buildDate(int y, int m, int d) {
10+
myDate.date = y+"-"+m+"-"+d;
11+
return this;
12+
}
13+
@Override
14+
public String date() {
15+
return myDate.date;
16+
}
17+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.anxpp.designpattern.builder;
2+
//具体生成器
3+
public class DateBuilder2 implements IDateBuilder{
4+
private MyDate myDate;
5+
public DateBuilder2(MyDate myDate){
6+
this.myDate = myDate;
7+
}
8+
@Override
9+
public IDateBuilder buildDate(int y, int m, int d) {
10+
myDate.date = y+" "+m+" "+d;
11+
return this;
12+
}
13+
@Override
14+
public String date() {
15+
return myDate.date;
16+
}
17+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.anxpp.designpattern.builder;
2+
//指挥者
3+
public class Derector {
4+
private IDateBuilder builder;
5+
public Derector(IDateBuilder builder){
6+
this.builder = builder;
7+
}
8+
public String getDate(int y,int m,int d){
9+
builder.buildDate(y, m, d);
10+
return builder.date();
11+
}
12+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.anxpp.designpattern.builder;
2+
//抽象生成器
3+
public interface IDateBuilder {
4+
IDateBuilder buildDate(int y,int m,int d);
5+
String date();
6+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.anxpp.designpattern.builder;
2+
//产品
3+
public class MyDate {
4+
String date;
5+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.anxpp.designpattern.builder;
2+
public class TestUse {
3+
public static void main(String args[]){
4+
MyDate date = new MyDate();
5+
IDateBuilder builder;
6+
builder = new DateBuilder1(date).buildDate(2066, 3, 5);
7+
System.out.println(builder.date());
8+
builder = new DateBuilder2(date).buildDate(2066, 3, 5);
9+
System.out.println(builder.date());
10+
}
11+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/**
2+
* @author Administrator
3+
* 生成器模式
4+
*/
5+
package com.anxpp.designpattern.builder;

0 commit comments

Comments
 (0)