設(shè)計(jì)模式

單例設(shè)計(jì)模式

一個(gè)類只有一個(gè)對象

1.私有化所有構(gòu)造方法,不讓外部創(chuàng)建對象
2.給外部提供一個(gè)方法獲取當(dāng)前類的對象
3.定義一個(gè)靜態(tài)變量保存唯一的對象

private static 類名 對象;
public static 類名 方法名(){
    return 對象;
}

4.創(chuàng)建對象
餓漢式:在定義靜態(tài)成員變量時(shí) 直接創(chuàng)建當(dāng)前類的一個(gè)對象 進(jìn)行賦值
懶漢式:默認(rèn)不創(chuàng)建對象,當(dāng)調(diào)用的時(shí)候才創(chuàng)建
為了線程安全,需要加鎖

if(instance == null){//判斷對象是否有值
            synchronized (HttpOperation.class){//加鎖
                if(instance == null){
                    instance = new HttpOperation();
                }
            }
        }

如圖,保證了單一對象


image.png

模板設(shè)計(jì)模式---主要使用抽象類實(shí)現(xiàn)

模板里面定義執(zhí)行的過程(有些功能自己可以實(shí)現(xiàn) 有些功能必須子類實(shí)現(xiàn))
抽象類用abstract修飾
抽象類不能被實(shí)例化
抽象類可以定義成員變量和方法
抽象方法用abstract修飾,且只能被子類實(shí)現(xiàn)
子類繼承于抽象類,子類要實(shí)現(xiàn)抽象類里面的抽象方法,如果不想實(shí)現(xiàn)可以將自己也變成抽象類,其他方法可以選擇實(shí)現(xiàn)(使用重寫)

抽象類和不同類的區(qū)別

抽象類不能實(shí)例化,但是普通類可以

抽象類里面可以由抽象方法(只申明,不能實(shí)現(xiàn),也不能有主體),普通類不行

實(shí)驗(yàn)操作
父類Act


image.png

子類Action


image.png

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

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

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