模式學習 六 策略模式

2022-02-25 07:06:09 字數 1016 閱讀 7396

var validator =,

//在當前驗證繪畫中的錯誤訊息

message : ,

//當前驗證配置

config : {},

//介面方法

validate : function

(data)

if(!checker);

}result_ok = checker.validate(data[i]);//

檢查的返回結果 : true false false

if(!result_ok)}}

return

this

.haserror();

},//幫助程式

haserror : function

() };

//validator 配置

validator.config =;

//validator的各種檢查

//非空值得檢查

validator.types.isnonempty =,

instructions : "the value cannot be empty"};

//檢查是否是乙個數字

validator.types.isnumber =,

instructions : "the value can only be a valid number, e.g. 1, 3.14 or 2010"};

//檢查該值是否只包含字母和數字

validator.types.isalphanum =,

instructions : "the value can only contain characters and numbers, no special symbols"};

var data =;

validator.validate(data);

//驗證

if(validator.haserror())

策略模式支援在執行時選擇演算法。上面是使用策略模式解決表單驗證的問題。

設計模式之六 策略模式

首先,大家都知道,程式設計師最討厭的,但是又必須接受的事實就是 需求一直在變化!那麼於是就要寫出容易維護的,可擴充套件的 對吧?讓我們來看下乙個背景。假設你要寫乙個人類 class 它有乙個go 的方法,但是 它有的時候乘車,有的時候巴士,有的時候坐飛機,有的時候坐遊艇.那麼怎麼應對所有的情況呢?你...

學習設計模式 策略模式

以下絕大部分內容 大話設計模式 c 定義演算法家族,分別封裝起來,讓它們之間可以互相替換,讓演算法變化,不會影響到使用者 good 適合類中的成員以方法為主,演算法經常變動 簡化了單元測試 因為每個演算法都有自己的類,可以通過自己的介面單獨測試。策略模式和簡單工廠基本相同,但簡單工模式只能解決物件建...

設計模式學習 策略模式

看完了策略模式的講解,然後將之於之前的簡單工廠模式對比了一下,策略模式就是將具體的演算法變化封裝了一下,可以將兩者結合一起使用,這樣的話封裝度會更加高一點,而且在更改演算法和新增演算法的時候更加方便。大話設計模式 書中是用商場收銀做例子,我將之用簡單工廠模式做了之後,現在把之前的計算例子再拿出來給一...