您好,登錄后才能下訂單哦!
在實(shí)際開發(fā)過程中,對已開發(fā)好的模塊代碼添加功能,但不能修改原代碼,不然違反了軟件開發(fā)中的“開發(fā)-封閉”原則 ,它規(guī)定已經(jīng)實(shí)現(xiàn)的功能不允許被修改,但可以被擴(kuò)展,即:
封閉:已實(shí)現(xiàn)的功能代碼塊不應(yīng)該被修改
開放:對現(xiàn)有功能的擴(kuò)展開放
Python在面向?qū)ο螅∣OP)的設(shè)計(jì)模式中,decorator被稱為裝飾模式。OOP的裝飾模式需要通過繼承和組合來實(shí)現(xiàn),而Python除了能支持OOP的decorator外,直接從語法層次支持decorator。可以用函數(shù)實(shí)現(xiàn),也可以用類實(shí)現(xiàn)。decorator可以增強(qiáng)函數(shù)的功能,定義起來雖然有點(diǎn)復(fù)雜,但使用起來非常靈活和方便。
1、無參數(shù)裝飾器,即需要裝飾的函數(shù)不需要傳入?yún)?shù)。
2、有參數(shù)裝飾器,即需要裝飾的函數(shù)有傳入?yún)?shù)。
3、不定長參數(shù)裝飾器
4、對帶有返回值的函數(shù)裝飾
5、通用裝飾器,兼容上面4種情況
6、裝飾器裝參數(shù)
7、舉例,某個(gè)網(wǎng)站已成功上線一段時(shí)間,現(xiàn)在有個(gè)需求,需要對某些頁面只針對vip客戶開放,需要添加權(quán)限認(rèn)證。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。