建造者模式

2015-10-19  本文已影响49人  738bc070cd74

Builder (建造者)属于创建型模式

意图

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。可以分步构造每一部分。

适用性

当创建复杂对象的算法应该独立于对象的组成部分以及它们的装配方式;
当构造过程必需允许被构造的对象有不同的表示时。

简介

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。可以分步构造每一部分。

模式的使用场景

相同的方法,不同的执行顺序,产生不同的事件结果时;
多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时;
产品类非常复杂,或者产品类中的调用顺序不同产生了不同的效能,这个时候使用建造者模式非常合适;

源码展现

AlertDialog dialog = new AlertDialog.Builder(this)
            .setTitle("Dialog")
            .setMessage("I'm a dialog")
            .setIcon(R.drawable.ic_launcher)
            .setPositiveButton("OK", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {

                }
            })
            .setNegativeButton("Cancel",
                    new DialogInterface.OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog,
                                int which) {

                        }
                    }).create();
    dialog.show();
效果图.png

Builder 是 AlertDialog 内部类

Builder
+AlertDialog show()
+AlertDialog create()
+Builder setTitle(String msg)
+Builder setMessage(String msg)
+Builder setIcon(int iconId)
...

优缺点

上一篇下一篇

猜你喜欢

热点阅读