File tree Expand file tree Collapse file tree 6 files changed +62
-47
lines changed
src/com/anxpp/designpattern/builder Expand file tree Collapse file tree 6 files changed +62
-47
lines changed Original file line number Diff line number Diff line change 11package com .anxpp .designpattern .builder ;
2+
23//具体生成器
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- }
4+ public class DateBuilder1 implements IDateBuilder {
5+ private MyDate myDate ;
6+
7+ public DateBuilder1 (MyDate myDate ) {
8+ this .myDate = myDate ;
9+ }
10+
11+ @ Override
12+ public IDateBuilder buildDate (int y , int m , int d ) {
13+ myDate .date = y + "-" + m + "-" + d ;
14+ return this ;
15+ }
16+
17+ @ Override
18+ public String date () {
19+ return myDate .date ;
20+ }
1721}
Original file line number Diff line number Diff line change 11package com .anxpp .designpattern .builder ;
2+
23//具体生成器
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- }
4+ public class DateBuilder2 implements IDateBuilder {
5+ private MyDate myDate ;
6+
7+ public DateBuilder2 (MyDate myDate ) {
8+ this .myDate = myDate ;
9+ }
10+
11+ @ Override
12+ public IDateBuilder buildDate (int y , int m , int d ) {
13+ myDate .date = y + " " + m + " " + d ;
14+ return this ;
15+ }
16+
17+ @ Override
18+ public String date () {
19+ return myDate .date ;
20+ }
1721}
Original file line number Diff line number Diff line change 11package com .anxpp .designpattern .builder ;
2+
23//指挥者
34public 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- }
5+ private IDateBuilder builder ;
6+
7+ public Derector (IDateBuilder builder ) {
8+ this .builder = builder ;
9+ }
10+
11+ public String getDate (int y , int m , int d ) {
12+ builder .buildDate (y , m , d );
13+ return builder .date ();
14+ }
1215}
Original file line number Diff line number Diff line change 11package com .anxpp .designpattern .builder ;
2+
23//抽象生成器
34public interface IDateBuilder {
4- IDateBuilder buildDate (int y ,int m ,int d );
5- String date ();
5+ IDateBuilder buildDate (int y , int m , int d );
6+
7+ String date ();
68}
Original file line number Diff line number Diff line change 11package com .anxpp .designpattern .builder ;
2+
23//产品
34public class MyDate {
4- String date ;
5+ String date ;
56}
Original file line number Diff line number Diff line change 11package com .anxpp .designpattern .builder ;
2+
23public 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- }
4+ public static void main (String args []) {
5+ MyDate date = new MyDate ();
6+ IDateBuilder builder ;
7+ builder = new DateBuilder1 (date ).buildDate (2066 , 3 , 5 );
8+ System .out .println (builder .date ());
9+ builder = new DateBuilder2 (date ).buildDate (2066 , 3 , 5 );
10+ System .out .println (builder .date ());
11+ }
1112}
You can’t perform that action at this time.
0 commit comments