建造者模式

Builder (建造者)屬于創(chuàng)建型模式

意圖

將一個(gè)復(fù)雜對(duì)象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示??梢苑植綐?gòu)造每一部分。

適用性

當(dāng)創(chuàng)建復(fù)雜對(duì)象的算法應(yīng)該獨(dú)立于對(duì)象的組成部分以及它們的裝配方式;
當(dāng)構(gòu)造過(guò)程必需允許被構(gòu)造的對(duì)象有不同的表示時(shí)。

簡(jiǎn)介

將一個(gè)復(fù)雜對(duì)象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示。可以分步構(gòu)造每一部分。

模式的使用場(chǎng)景

相同的方法,不同的執(zhí)行順序,產(chǎn)生不同的事件結(jié)果時(shí);
多個(gè)部件或零件,都可以裝配到一個(gè)對(duì)象中,但是產(chǎn)生的運(yùn)行結(jié)果又不相同時(shí);
產(chǎn)品類(lèi)非常復(fù)雜,或者產(chǎn)品類(lèi)中的調(diào)用順序不同產(chǎn)生了不同的效能,這個(gè)時(shí)候使用建造者模式非常合適;

源碼展現(xiàn)

  • 用法
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 內(nèi)部類(lèi)

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

優(yōu)缺點(diǎn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 Android的設(shè)計(jì)模式系列文章介紹:歡迎關(guān)注,持續(xù)更新中: Android的設(shè)計(jì)模式-設(shè)計(jì)模式的六大原則一...
    四月葡萄閱讀 18,345評(píng)論 10 43
  • 沒(méi)有人買(mǎi)車(chē)會(huì)只買(mǎi)一個(gè)輪胎或者方向盤(pán),大家買(mǎi)的都是一輛包含輪胎、方向盤(pán)和發(fā)動(dòng)機(jī)等多個(gè)部件的完整汽車(chē)。如何將這些部件組...
    justCode_閱讀 1,999評(píng)論 1 6
  • 1.建造者模式的定義及使用場(chǎng)景Builder模式是一步一步創(chuàng)建一個(gè)復(fù)制對(duì)象的創(chuàng)建型模式,他允許用戶在不知道內(nèi)部構(gòu)建...
    GB_speak閱讀 293評(píng)論 0 0
  • 一、簡(jiǎn)介 建造者模式(Builder Pattern)使用多個(gè)簡(jiǎn)單的對(duì)象一步一步構(gòu)建成一個(gè)復(fù)雜的對(duì)象。這種類(lèi)型的設(shè)...
    宇是我閱讀 942評(píng)論 0 3
  • 1.新建項(xiàng)目文件夾 2.文件夾文件(進(jìn)入src文件夾,創(chuàng)建entries文件夾,在entries文件夾里新建ind...
    wn_Smile閱讀 1,461評(píng)論 0 0

友情鏈接更多精彩內(nèi)容