摘要:抽象模式使用的裝飾者模式允許我們在運行時或者在隨后一個點上動態地將兩個或兩個以上的對象和它們的屬性一起擴展或合并為一個單一對象。定義三個對象目的是為了裝飾對象將的額外功能附加到上。
抽象decorator模式 使用jQuery的裝飾者模式
jQuery.extend()允許我們在運行時或者在隨后一個點上動態地將兩個或兩個以上的對象(和它們的屬性)一起擴展(或合并)為一個單一對象。
定義三個對象: 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);
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/78883.html
摘要:作者按每天一個設計模式旨在初步領會設計模式的精髓,目前采用和兩種語言實現。誠然,每種設計模式都有多種實現方式,但此小冊只記錄最直截了當的實現方式原文地址是每天一個設計模式之裝飾者模式歡迎關注個人技術博客。 作者按:《每天一個設計模式》旨在初步領會設計模式的精髓,目前采用javascript和python兩種語言實現。誠然,每種設計模式都有多種實現方式,但此小冊只記錄最直截了當的實現方式...
摘要:作者按每天一個設計模式旨在初步領會設計模式的精髓,目前采用和兩種語言實現。誠然,每種設計模式都有多種實現方式,但此小冊只記錄最直截了當的實現方式原文地址是每天一個設計模式之裝飾者模式歡迎關注個人技術博客。 作者按:《每天一個設計模式》旨在初步領會設計模式的精髓,目前采用javascript和python兩種語言實現。誠然,每種設計模式都有多種實現方式,但此小冊只記錄最直截了當的實現方式...
摘要:裝飾者模式裝飾者模式就是動態的給類或對象增加功能的設計模式。下的實現里的裝飾器目前處在建議征集的第二階段,不被瀏覽器所支持,如果想要提前使用這個新特性就需要,等工具進行轉譯。這里介紹下的用法。 1.1、裝飾者模式 裝飾者模式就是動態的給類或對象增加功能的設計模式。在程序運行時動態的給一個具備基礎功能的類或對象添加新的功能,并且不會改變會破壞基礎類和對象的功能。先提煉出產品的最小可用產品...
摘要:下裝飾者的實現了解了裝飾者模式和的概念之后,我們寫一段能夠兼容的代碼來實現裝飾者模式原函數拍照片定義函數裝飾函數加濾鏡用裝飾函數裝飾原函數這樣我們就實現了抽離拍照與濾鏡邏輯,如果以后需要自動上傳功能,也可以通過函數來添加。 showImg(https://segmentfault.com/img/bVbueyz?w=852&h=356); 什么是裝飾者模式 當我們拍了一張照片準備發朋友...
摘要:裝飾者要實現這些相同的方法繼承自裝飾器對象創建具體的裝飾器,也是接收作對參數接下來我們要為每一個功能創建一個裝飾者對象,重寫父級方法,添加我們想要的功能。 裝飾模式 僅僅包裝現有的模塊,使之 更加華麗 ,并不會影響原有接口的功能 —— 好比你給手機添加一個外殼罷了,并不影響手機原有的通話、充電等功能; 使用 ES7 的 decorator ES7 中增加了一個 decorator 屬性...
閱讀 671·2021-11-24 09:39
閱讀 2336·2021-11-22 13:54
閱讀 2207·2021-09-23 11:46
閱讀 3252·2019-08-30 15:55
閱讀 2687·2019-08-30 15:54
閱讀 2412·2019-08-30 14:18
閱讀 1552·2019-08-29 14:15
閱讀 2739·2019-08-29 13:49