裝飾者模式 乙個簡單的裝飾函式

2021-10-05 14:12:15 字數 377 閱讀 6327

裝飾者模式(decorator):在不改變原物件的基礎上,通過對其進行包裝拓展(新增屬性或者方法)使原有物件可以滿足使用者更複雜的需求。

乙個簡單的栗子:

需求:為輸入框繫結新事件而不影響原有事件

var decorator = function(input, fn) 

} else

// do something

}// 使用,裝飾者不僅僅可以對繫結過事件的輸入框新增新的功能,未繫結過的輸入框同樣可以

decorator('myinput', function() );

decorator('myinput', function() );

乙個裝飾器裝飾乙個函式

2 如果鍵不存在,則新增到字典中。請使用裝飾器來實現,順便複習下 args和 kwargs的用法 a defselect func def inner args,kwargs if len args 0 if kwargs key in kwargs data print 鍵存在 else func...

簡單的裝飾者模式

裝飾者模式主要用來擴充套件功能的,不會改變原來物件的功能,只做擴充套件 版本一 如下 public abstract class beefnoodlepublic class basebeefnoodle extends beefnoodle public int getprice public c...

乙個最簡單的裝飾模式

如果要對乙個list中的元素排序,如果list中的元素是可排序的 實現了 apable 直接collections.sort list 如果要指定排序演算法,可以使用 parator,可以參考 collections.sort是按公升序排序的,如果要按降序呢?其實很簡單,只要自己重新定義乙個 par...