<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        yui3的AOP(面向切面編程)和OOP(面向對象編程)_YUI.Ext相關

        來源:懂視網 責編:小采 時間:2020-11-27 21:37:38
        文檔

        yui3的AOP(面向切面編程)和OOP(面向對象編程)_YUI.Ext相關

        yui3的AOP(面向切面編程)和OOP(面向對象編程)_YUI.Ext相關:首先請把手放胸前成沉思狀:我上了生活,還是被生活上了自己? 沒想出答案把,恩,可以讀下文了。從語義角度講,同一事物的不同表述可以反映人的主觀視角的不同,從哲學角度將,世界觀影響方法論,我們看事物的角度不同,有時會得出截然相悖的結論,從而會影
        推薦度:
        導讀yui3的AOP(面向切面編程)和OOP(面向對象編程)_YUI.Ext相關:首先請把手放胸前成沉思狀:我上了生活,還是被生活上了自己? 沒想出答案把,恩,可以讀下文了。從語義角度講,同一事物的不同表述可以反映人的主觀視角的不同,從哲學角度將,世界觀影響方法論,我們看事物的角度不同,有時會得出截然相悖的結論,從而會影
        首先請把手放胸前成沉思狀:我上了生活,還是被生活上了自己?

        沒想出答案把,恩,可以讀下文了。從語義角度講,同一事物的不同表述可以反映人的主觀視角的不同,從哲學角度將,世界觀影響方法論,我們看事物的角度不同,有時會得出截然相悖的結論,從而會影響我們的做事方式和行為準則,現實生活如此,在豐富多彩的編程語言中更是如此,編程模式充滿了對現實世界的各種模擬,包括是面向過程,面向對象,還有面向切面。我們大概已經非常熟悉面向過程和面向對象,切面的英文是Aspects(有時譯作方面,我感覺用切面更能貼切的表達Aspects的內涵)。

        有關AOP的鏈接看這里:
        http://en.wikipedia.org/wiki/Aspect-ori ... rogramming

        YUI3中的自定義事件實現了AOP
        http://developer.yahoo.com/yui/3/event

        什么是切面?舉個簡單的例子,每天我們上下班擠地鐵坐公交和女朋友約會上網吧打游戲去電影院看電影……,一天要做很多事情,每個人都是一個Object,我們做的每件事情都是這個Object的方法,比如,

        甲.上班();
        乙.坐地鐵();
        丙.看電影();


        其實可以換個角度看,公司需要員工來上班,軌道交通需要每個人去乘坐,電影院給每個人放電影。這樣就變成了:

        公司.need(甲)
        地鐵.carry(乙);
        電影院.放電影給(丙);


        這樣看來,不僅甲乙丙每個個體都是一個對象,公司、地鐵、電影院也是對象,這種抽象就是傳統的面向切面。而在js編程中,程序一般都不大,所以大概不會到達非要使用切面級別的抽象的程度。但其基于事件驅動的原理則很容易讓人聯想到AOP,上個例子在js中就可能是:

        如果脫離上下文來看,上面的代碼依然語義牽強。只是很多js框架把切面編程的邊緣特性封裝成方法,對人造成了很多誤導。比如事件的綁定。當函數foo執行結束的時候執行myfoo,在不修改foo的基礎上來添加對foo的監聽,

        jquery和prototype都實現了這種簡單的函數綁定。jquery的aop在這里。但在yui3中,AOP則被提升至自定義事件的一種內在機制,在源碼中隨處可見。這在理解yui3的代碼重用機制是很有幫助的。也正是得益于這種抽象使得yui3的自定義事件異常強大和靈活。和OOP相比,AOP的優點是非侵入式的“裝飾”,但在多數情況下,并不推薦首先使用AOP來寫代碼。來看這個例子:每個人的生活習慣很類似,這里用四種行為為例,上學,放學,泡妞,打游戲,甲的生活規律很正常,每種事件發生的概率是一樣的,乙是個貪玩的小孩,只會去網吧打游戲和泡妞,丙是一個愛學習的小孩,從不泡妞和打游戲,丁是一個經歷超級旺盛的另類,每次都是同時干兩件事情,上學的時候泡妞,放學的時候打游戲。這里用div代表每個人,用onmouseover來觸發每個事件。

        用OOP的方法那么程序結構應該是這樣:

        代碼在這里:yui_oop.htm

        這里的"古怪人"繼承自"正常人"的時候,是通過代碼重寫的方法來達到重載的目的,這里明顯違反了非侵入性原則。再來看AOP的思路:

        代碼在這里:yui_aop.htm

        這里抽象出了事件發布工廠,用來專門處理事件的發布,由其生成的生活軌跡對象對每個人進行監聽,捕捉每個人的各種行為。工廠在生成‘古怪人生活軌跡'的時候使用了上文提到的函數的監聽綁定,這種綁定是非侵入性的,可以很好的和工廠解耦。從這個例子中比較OOP和AOP,兩者復雜度差不多,但AOP思路更開闊,代碼也更靈活一些。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        yui3的AOP(面向切面編程)和OOP(面向對象編程)_YUI.Ext相關

        yui3的AOP(面向切面編程)和OOP(面向對象編程)_YUI.Ext相關:首先請把手放胸前成沉思狀:我上了生活,還是被生活上了自己? 沒想出答案把,恩,可以讀下文了。從語義角度講,同一事物的不同表述可以反映人的主觀視角的不同,從哲學角度將,世界觀影響方法論,我們看事物的角度不同,有時會得出截然相悖的結論,從而會影
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 精品亚洲国产成AV人片传媒| 亚洲国产一区在线| 亚洲精品无码成人片久久不卡| 99re免费99re在线视频手机版| 亚洲欧洲日韩国产综合在线二区| 麻豆精品成人免费国产片| 亚洲成A∨人片在线观看不卡| 免费人成在线观看视频高潮| 亚洲AV日韩AV永久无码免下载| 久久伊人免费视频| 亚洲一区二区三区免费在线观看| 可以免费看的卡一卡二| 亚洲人成网站18禁止| 香蕉高清免费永久在线视频| 国产精品亚洲综合| 红杏亚洲影院一区二区三区| 日韩免费的视频在线观看香蕉| 久久久无码精品亚洲日韩按摩| 成人免费在线看片| 在线精品自拍亚洲第一区| 亚洲一区视频在线播放| 久久久免费的精品| 最新亚洲卡一卡二卡三新区| 亚洲精品和日本精品| 9420免费高清在线视频| 一区二区亚洲精品精华液 | 在线免费观看一区二区三区| 国产精品久久久久久亚洲影视 | 色婷婷六月亚洲婷婷丁香| 无码国产精品一区二区免费式影视| 亚洲乱码中文字幕在线| 亚洲热妇无码AV在线播放| 99久久国产热无码精品免费| 四虎精品免费永久免费视频| 精品亚洲成AV人在线观看| 色吊丝永久在线观看最新免费 | **aaaaa毛片免费同男同女| 国产精品亚洲一区二区三区在线观看| 亚洲综合色自拍一区| 国拍在线精品视频免费观看| 又黄又大的激情视频在线观看免费视频社区在线 |