欢迎大家来到IT世界,在知识的湖畔探索吧!
1.Builder模式介绍
Builder模式是一种创建型模式。Builder使用链式调用来一步一步地组装一个复杂的对象。
2. Android中的AlertDialog的创建应用的就是Builder模式
public class AlertDialogActivity extends Activity {
private AlertDialog alertDialog;
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.alert_dialog_activity);
btn=(Button)findViewById(R.id.btn);
// Builder使用链式调用一步一步的构建AlertDialog实例
alertDialog=new AlertDialog.Builder(this)
.setTitle(“AlertDialog使用Builder模式创建”)
.setMessage(“Android 中使用AlertDialog的通用方法”)
.setPositiveButton(“确定”, new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Alert.alertMsg(“AlertDialog已关闭”);
//AlertDialog消失
dialog.dismiss();
}
}).create();
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//AlertDialog显示
alertDialog.show();
}
});
}
}
3.应用Builder模式自己创建一个实例对象
//定义类AppProgrammerController,构造方法私有,
定义内部类Builder,用于构建AppProgrammerController的对象
public class AppProgrammerController {
String pLanguage;//掌握的编程语言
String pAndroid;//Android基础
String pDb;//数据库
String pAlg;//算法
String pDs;//数据结构
String pProject;//练习的项目
//构造方法 private
private AppProgrammerController(){}
public boolean canProgramAndroidApp(AppProgrammerController apc){
if(apc!=null && apc.pLanguage.equals(“JAVA”)
&& apc.pAndroid.equals(“Android”) && apc.pDb.equals(“SQLite”)
&& apc.pAlg.equals(“算法基础”) &&
apc.pDs.equals(“数据结构”) && apc.pProject.equals(“桌球”)){
return true;
}else{
return false;
}
}
public static class Builder{
//实例化外部类AppProgrammerController
private AppProgrammerController appProgrammerController;
public Builder(){
appProgrammerController=new AppProgrammerController();
}
//set方法返回this 用于链式调用
public Builder setpLanguage(String pLanguage) {
appProgrammerController.pLanguage = pLanguage;
return this;
}
public Builder setpAndroid(String pAndroid) {
appProgrammerController.pAndroid = pAndroid;
return this;
}
public Builder setpDb(String pDb) {
appProgrammerController.pDb = pDb;
return this;
}
public Builder setpAlg(String pAlg) {
appProgrammerController.pAlg = pAlg;
return this;
}
public Builder setpDs(String pDs) {
appProgrammerController.pDs = pDs;
return this;
}
public Builder setpProject(String pProject) {
appProgrammerController.pProject = pProject;
return this;
}
//创建AppProgrammerController
public AppProgrammerController create(){
return appProgrammerController;
}
}
}
// 在Activity中测试效果
buildeBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//使用Builder模式构建对象appProgrammerController
AppProgrammerController appProgrammerController=
new AppProgrammerController.Builder()
.setpLanguage(“JAVA”)
.setpAndroid(“Android”)
.setpAlg(“算法基础”)
.setpDb(“SQLite”)
.setpDs(“数据结构”)
.setpProject(“桌球”)
.create();
if(appProgrammerController.canProgramAndroidApp(appProgrammerController)){
Alert.alertMsg(“掌握了Android开发的基础知识,可以开发Adroid APP了”);
}
}
});
4.测试效果
视频加载中…
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/142864.html