国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

詳解JavaScript的策略模、式編程

2019-11-02 15:26:43
字體:
來源:轉載
供稿:網友

   這篇文章主要介紹了詳解JavaScript的策略模式編程,包括函數和類作為策略的情況以及多環境下的策略模式,需要的朋友可以參考下

  我喜歡策略設計模式。我盡可能多的試著去使用它。究其本質,策略模式使用委托去解耦使用它們的算法類。

  這樣做有幾個好處。他可以防止使用大條件語句來決定哪些算法用于特定類型的對象。將關注點分離開來,因此降低了客戶端的復雜度,同時還可以促進子類化的組成。它提高了模塊化和可測性。每一個算法都可以單獨測試。每一個客戶端都可以模擬算法。任意的客戶端都能使用任何算法。他們可以互調。就像樂高積木一樣。

  為了實現策略模式,通常有兩個參與者:

  該策略的對象,封裝了算法。

  客戶端(上下文)對象,以即插即用的方式能使用任何策略。

  這里介紹了我在Javascrip里,怎樣使用策略模式,在混亂無序的環境中怎樣使用它將庫拆成小插件,以及即插即用包的。

  函數作為策略

  一個函數提供了一種封裝算法的絕佳方式,同時可以作為一種策略來使用。只需通過一個到客戶端的函數并確保你的客戶端能調用該策略。

  我們用一個例子來證明。假設我們想創建一個Greeter 類。它所要做的就是和人打招呼。我們希望Greeter 類能知道跟人打招呼的不同方式。為了實現這一想法,我們為打招呼創建不同的策略。

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 // Greeter is a class of object that can greet people. // It can learn different ways of greeting people through // 'Strategies.' // // This is the Greeter constructor. var Greeter = function(strateg
俺去也電影網[www.aikan.tv/special/anquyedianyingwang/]
y) { this.strategy = strategy; };   // Greeter provides a greet function that is going to // greet people using the Strategy passed to the constructor. Greeter.prototype.greet = function() { return this.strategy(); };   // Since a function encapsulates an algorithm, it makes a perfect // candidate for a Strategy. // // Here are a couple of Strategies to use with our Greeter. var politeGreetingStrategy = function() { console.log("Hello."); };   var friendlyGreetingStrategy = function() { console.log("Hey!"); };   var boredGreetingStrategy = function() { console.log("sup."); };   // Let's use these strategies! var politeGreeter = new Greeter(politeGreetingStrategy); var friendlyGreeter = new Greeter(friendlyGreetingStrategy); var boredGreeter = new Greeter(boredGreetingStrategy);   console.log(politeGreeter.greet()); //=> Hello. console.log(friendlyGreeter.greet()); //=> Hey! console.log(boredGreeter.greet()); //=> sup.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丰顺县| 达拉特旗| 巴里| 裕民县| 安陆市| 郯城县| 乐清市| 芒康县| 刚察县| 三门峡市| 永康市| 松潘县| 确山县| 铁岭市| 会东县| 广东省| 富民县| 山阳县| 乌什县| 巴楚县| 哈巴河县| 璧山县| 延长县| 巩留县| 九江市| 定西市| 北辰区| 玛沁县| 龙陵县| 阳曲县| 怀远县| 那坡县| 桐梓县| 伊宁县| 富顺县| 济宁市| 游戏| 进贤县| 翁源县| 太和县| 武冈市|