Open Trinea opened 9 years ago
我来开个头,关于Builder design pattern
AlertDialog dialog = new AlertDialog.Builder(context)
.setTitle("dialog title")
.setMessage("this is a message")
.setIcon(R.drawable.ic_launcher)
.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
@Override public void onClick(DialogInterface dialog, int which) {
}
}).setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override public void onClick(DialogInterface dialog, int which) {
}
}).create();
//TODO : dialog.show();
Picasso也是由Sqaure公司出品的一款图片异步加载框架。
使用方法简单的
Picasso picasso = new Picasso.Builder(getActivity())
.loggingEnabled(true)
.indicatorsEnabled(true)
.listener(new Picasso.Listener() {
@Override public void onImageLoadFailed(Picasso picasso, Uri uri, Exception exception) {
}
}).build();
//TODO use picasso
Retrofit是在Android开源界非常有名的RESTful框架,使用接口(interface)与注解(annotation)定义各种http请求,还可以异步回调UI操作,可以说是非常强大的一款框架。
看如下代码
RestAdapter adapter = new RestAdapter.Builder()
.setEndpoint(HeadlineService.END_POINT)
.setLogLevel(RestAdapter.LogLevel.FULL)
.setRequestInterceptor(new RequestInterceptor() {
@Override public void intercept(RequestFacade request) {
//TODO: intercept some request
}
}).setErrorHandler(new ErrorHandler() {
@Override public Throwable handleError(RetrofitError cause) {
//TODO: return some error
return null;
}
}).build();
//TODO: use adaper
这里的Builder是如何实现的呢?我们打开源码,同样是按照三个流程实现的。
资料可见:https://github.com/iluwatar/java-design-patterns
Android 系统源码到处就是优秀的设计模式,你了解多少?评论举例看看