javascript策略模式-年底績效的計(jì)算

策略模式:定義一系列的算法,把他們一個個封裝起來,并且可以相互替換
參見《javascript設(shè)計(jì)模式與開發(fā)實(shí)踐》

解決問題:公司的績效根據(jù)員工的工資和年度績效來決定。每個人的工資和績效是不同的,但是計(jì)算方法是相同的。

 js版的策略模式

//定義三個不同績效的策略,每個績效的策略實(shí)際的計(jì)算結(jié)果還有傳入的參數(shù)來計(jì)算
var strategies = {
        "S": function( salary ){  //s是績效,salary是傳入的工資參數(shù),下同
            return salary * 4;
        },
        "A": function( salary ){
            return salary * 3;
        },
        "B": function( salary ){
            return salary * 2;

        }
    };
        //使用策略的計(jì)算函數(shù),傳入績效和工資參數(shù)
    var calculateBonus = function( level, salary ){
        return strategies[ level ]( salary );  //根據(jù)參數(shù)選用不同的策略
    };
       //使用時傳入績效等級和工資額
    console.log( calculateBonus( 'S', 20000 ) ); // 輸出:80000
    console.log( calculateBonus( 'A', 10000 ) ); // 輸出:30000```

通過策略模式,策略和實(shí)際的計(jì)算方法分工明確,關(guān)系解耦和,各自發(fā)生改變都不改變另一部分的代碼結(jié)構(gòu)和內(nèi)容。在具體策略中也不會出現(xiàn)緊耦合的判讀選擇語句。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 工廠模式類似于現(xiàn)實(shí)生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情,實(shí)現(xiàn)同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 8,131評論 2 17
  • 1 場景問題# 1.1 報價管理## 向客戶報價,對于銷售部門的人來講,這是一個非常重大、非常復(fù)雜的問題,對不同的...
    七寸知架構(gòu)閱讀 5,259評論 9 62
  • 1 場景問題 1.1 報價管理 向客戶報價,對于銷售部門的人來講,這是一個非常重大、非常復(fù)雜的問題,對不同的客戶要...
    4e70992f13e7閱讀 3,227評論 2 16
  • 今天下午,看見我那讀初一的妹妹,破天荒地發(fā)了條說說,她寫著:“為什么要壓抑我們的天性呢?”我撲哧地笑了出來,這小子...
    羅綺閱讀 524評論 0 1
  • 那年,她22歲,愛上了一個男人 男人留披肩的長發(fā),穿故意剪了洞的破牛仔褲,站立的時候也沒正形,腳篩糠似的抖著,那肩...
    18372dad7cba閱讀 233評論 0 2

友情鏈接更多精彩內(nèi)容