Skip to content

Commit 3c1aee6

Browse files
committed
添加Alert Builder的Builder模式
1 parent dfdea96 commit 3c1aee6

3 files changed

Lines changed: 177 additions & 0 deletions

File tree

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
package cn.byhieg.designpatterntutorial.builder;
2+
3+
/**
4+
* Created by shiqifeng on 2017/5/7.
5+
6+
*/
7+
public class SimpleDialog {
8+
9+
10+
public SimpleDialogController controller;
11+
12+
public SimpleDialog(){
13+
controller = new SimpleDialogController();
14+
}
15+
16+
public void setIcon(String icon) {
17+
controller.setIcon(icon);
18+
}
19+
20+
public void setTitle(String title) {
21+
controller.setTitle(title);
22+
}
23+
24+
public void setMessage(String message) {
25+
controller.setMessage(message);
26+
}
27+
28+
public void setPositiveButton(String positiveButton) {
29+
controller.setPositiveButton(positiveButton);
30+
}
31+
32+
public void setNegativeButton(String negativeButton) {
33+
controller.setNegativeButton(negativeButton);
34+
}
35+
36+
37+
public static class Builder{
38+
SimpleDialogController.DialogParams P;
39+
40+
public Builder(){
41+
P = new SimpleDialogController.DialogParams();
42+
}
43+
44+
public Builder setIcon(String icon){
45+
P.icon = icon;
46+
return this;
47+
}
48+
49+
public Builder setTitle(String title) {
50+
P.title = title;
51+
return this;
52+
}
53+
54+
public Builder setMessage(String message) {
55+
P.message = message;
56+
return this;
57+
}
58+
59+
public Builder setPositiveButton(String positiveButton) {
60+
P.positiveButton = positiveButton;
61+
return this;
62+
}
63+
64+
public Builder setNegativeButton(String negativeButton) {
65+
P.negativeButton = negativeButton;
66+
return this;
67+
}
68+
69+
public SimpleDialog create(){
70+
SimpleDialog dialog = new SimpleDialog();
71+
P.apply(dialog.controller);
72+
System.out.println(" ICON = " + P.icon + " MESSAGE = " + P.message + " positiveButton = " + P.positiveButton + " negativeButton" + P.negativeButton);
73+
return dialog;
74+
}
75+
}
76+
77+
78+
}
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
package cn.byhieg.designpatterntutorial.builder;
2+
3+
/**
4+
* Created by shiqifeng on 2017/5/7.
5+
6+
*/
7+
public class SimpleDialogController {
8+
9+
private String icon;
10+
private String title;
11+
private String message;
12+
private String positiveButton;
13+
private String negativeButton;
14+
15+
public void setIcon(String icon) {
16+
this.icon = icon;
17+
}
18+
19+
public void setTitle(String title) {
20+
this.title = title;
21+
}
22+
23+
public void setMessage(String message) {
24+
this.message = message;
25+
}
26+
27+
public void setPositiveButton(String positiveButton) {
28+
this.positiveButton = positiveButton;
29+
}
30+
31+
public void setNegativeButton(String negativeButton) {
32+
this.negativeButton = negativeButton;
33+
}
34+
35+
public String getIcon() {
36+
return icon;
37+
}
38+
39+
public String getTitle() {
40+
return title;
41+
}
42+
43+
public String getMessage() {
44+
return message;
45+
}
46+
47+
public String getPositiveButton() {
48+
return positiveButton;
49+
}
50+
51+
public String getNegativeButton() {
52+
return negativeButton;
53+
}
54+
55+
public static class DialogParams{
56+
public String icon;
57+
public String title;
58+
public String message;
59+
public String positiveButton;
60+
public String negativeButton;
61+
62+
public void apply(SimpleDialogController controller) {
63+
if (icon != null) {
64+
controller.setIcon(icon);
65+
}
66+
if (title != null) {
67+
controller.setTitle(title);
68+
}
69+
if (message != null) {
70+
controller.setMessage(message);
71+
}
72+
if (positiveButton != null) {
73+
controller.setPositiveButton(positiveButton);
74+
}
75+
if (negativeButton != null) {
76+
controller.setNegativeButton(negativeButton);
77+
}
78+
}
79+
}
80+
81+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package cn.byhieg.designpatterntutorialtest;
2+
3+
import cn.byhieg.designpatterntutorial.builder.SimpleDialog;
4+
import junit.framework.TestCase;
5+
6+
/**
7+
* Created by shiqifeng on 2017/5/7.
8+
9+
*/
10+
public class SimpleDialogTest extends TestCase {
11+
12+
public void testBuilder() throws Exception {
13+
SimpleDialog dialog = new SimpleDialog.Builder().setIcon("图标").setMessage("这是Dialog").setPositiveButton("确认").setNegativeButton("否定").create();
14+
15+
16+
}
17+
18+
}

0 commit comments

Comments
 (0)