摘要:抽象模式使用的裝飾者模式允許我們在運(yùn)行時或者在隨后一個點(diǎn)上動態(tài)地將兩個或兩個以上的對象和它們的屬性一起擴(kuò)展或合并為一個單一對象。定義三個對象目的是為了裝飾對象將的額外功能附加到上。
抽象decorator模式 使用jQuery的裝飾者模式
jQuery.extend()允許我們在運(yùn)行時或者在隨后一個點(diǎn)上動態(tài)地將兩個或兩個以上的對象(和它們的屬性)一起擴(kuò)展(或合并)為一個單一對象。
定義三個對象: defaults、options、settings,目的是為了裝飾defaults對象,將options的額外功能附加到defaults上。
var decoratorApp = decoratorApp || {}; //定義要使用的對象 decoratorApp = { defaults: { validate: false, limit: 5, name: "foo", welcome: function(){ console.log("welcome!"); } }, options:{ validate: true, name: "bar", helloWorld: function(){ console.log("hello,world"); } }, settings: {}, printObj: function(obj){ var arr = [], next; $.each(obj,function(key,val){ next = key + ":"; next += $.isPlainObject(val) ? printObj(val) : val; arr.push(next); }); return "{" + arr.join(",") + "}"; } }; decoratorApp.settings = $.extend({},decoratorApp.defaults,decoratorApp.options); //打印 decoratorApp.printObj(decoratorApp.settings);
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/78883.html
摘要:作者按每天一個設(shè)計模式旨在初步領(lǐng)會設(shè)計模式的精髓,目前采用和兩種語言實(shí)現(xiàn)。誠然,每種設(shè)計模式都有多種實(shí)現(xiàn)方式,但此小冊只記錄最直截了當(dāng)?shù)膶?shí)現(xiàn)方式原文地址是每天一個設(shè)計模式之裝飾者模式歡迎關(guān)注個人技術(shù)博客。 作者按:《每天一個設(shè)計模式》旨在初步領(lǐng)會設(shè)計模式的精髓,目前采用javascript和python兩種語言實(shí)現(xiàn)。誠然,每種設(shè)計模式都有多種實(shí)現(xiàn)方式,但此小冊只記錄最直截了當(dāng)?shù)膶?shí)現(xiàn)方式...
摘要:作者按每天一個設(shè)計模式旨在初步領(lǐng)會設(shè)計模式的精髓,目前采用和兩種語言實(shí)現(xiàn)。誠然,每種設(shè)計模式都有多種實(shí)現(xiàn)方式,但此小冊只記錄最直截了當(dāng)?shù)膶?shí)現(xiàn)方式原文地址是每天一個設(shè)計模式之裝飾者模式歡迎關(guān)注個人技術(shù)博客。 作者按:《每天一個設(shè)計模式》旨在初步領(lǐng)會設(shè)計模式的精髓,目前采用javascript和python兩種語言實(shí)現(xiàn)。誠然,每種設(shè)計模式都有多種實(shí)現(xiàn)方式,但此小冊只記錄最直截了當(dāng)?shù)膶?shí)現(xiàn)方式...
摘要:裝飾者模式裝飾者模式就是動態(tài)的給類或?qū)ο笤黾庸δ艿脑O(shè)計模式。下的實(shí)現(xiàn)里的裝飾器目前處在建議征集的第二階段,不被瀏覽器所支持,如果想要提前使用這個新特性就需要,等工具進(jìn)行轉(zhuǎn)譯。這里介紹下的用法。 1.1、裝飾者模式 裝飾者模式就是動態(tài)的給類或?qū)ο笤黾庸δ艿脑O(shè)計模式。在程序運(yùn)行時動態(tài)的給一個具備基礎(chǔ)功能的類或?qū)ο筇砑有碌墓δ?,并且不會改變會破壞基礎(chǔ)類和對象的功能。先提煉出產(chǎn)品的最小可用產(chǎn)品...
摘要:下裝飾者的實(shí)現(xiàn)了解了裝飾者模式和的概念之后,我們寫一段能夠兼容的代碼來實(shí)現(xiàn)裝飾者模式原函數(shù)拍照片定義函數(shù)裝飾函數(shù)加濾鏡用裝飾函數(shù)裝飾原函數(shù)這樣我們就實(shí)現(xiàn)了抽離拍照與濾鏡邏輯,如果以后需要自動上傳功能,也可以通過函數(shù)來添加。 showImg(https://segmentfault.com/img/bVbueyz?w=852&h=356); 什么是裝飾者模式 當(dāng)我們拍了一張照片準(zhǔn)備發(fā)朋友...
摘要:裝飾者要實(shí)現(xiàn)這些相同的方法繼承自裝飾器對象創(chuàng)建具體的裝飾器,也是接收作對參數(shù)接下來我們要為每一個功能創(chuàng)建一個裝飾者對象,重寫父級方法,添加我們想要的功能。 裝飾模式 僅僅包裝現(xiàn)有的模塊,使之 更加華麗 ,并不會影響原有接口的功能 —— 好比你給手機(jī)添加一個外殼罷了,并不影響手機(jī)原有的通話、充電等功能; 使用 ES7 的 decorator ES7 中增加了一個 decorator 屬性...
閱讀 722·2021-11-24 09:39
閱讀 2409·2021-11-22 13:54
閱讀 2261·2021-09-23 11:46
閱讀 3299·2019-08-30 15:55
閱讀 2734·2019-08-30 15:54
閱讀 2473·2019-08-30 14:18
閱讀 1599·2019-08-29 14:15
閱讀 2794·2019-08-29 13:49