2.策略模式
(要實現某乙個功能有多種方案可以選擇。比如乙個壓縮檔案的程式,既可以選擇 zip 演算法,也可以選擇 gzip 演算法。這些演算法靈活多樣,而且可以隨意互相替換。策略模式的定義是:定義一系列的演算法,把它們乙個個封裝起來,並且使它們可以相互替換。)
var strategies = ,
"a": function( salary ),
"b": function( salary )
}; var calculatebonus = function( level, salary );
console.log( calculatebonus( 's', 20000 ) ); // 輸出:80000
console.log( calculatebonus( 'a', 10000 ) ); // 輸出:30000
var s = function( salary );
var a = function( salary );
var b = function( salary );
var calculatebonus = function( func, salary );
calculatebonus( s, 10000 ); // 輸出:40000
2.1策略模式檢測提交資訊
/***********************策略物件**************************/
var strategies =
}, minlength: function( value, length, errormsg )
}, ismobile: function( value, errormsg )$)/.test( value ) )
} };
/***********************validator 類**************************/
var validator = function();
validator.prototype.add = function( dom, rules ));
})( rule )
} };
validator.prototype.start = function()
} };
/***********************客戶呼叫****************************/
var registerform = document.getelementbyid( 'registerform' );
var validatafunc = function(), ]);
validator.add( registerform.password, );
validator.add( registerform.phonenumber, );
var errormsg = validator.start();
return errormsg;
} registerform.onsubmit = function()
};
設計模式學習(三) 裝飾模式
在將模式之前,先對乙個oo設計原則掌握 對擴充套件開放和對修改關閉 無論如何,程式不能因為一些功能的修改就去該原來寫的,這樣只會越改越亂,因此,對修改遮蔽,和新增加的功能使用擴充套件的方式新增進去 裝飾者模式正可以做到這一點。這裡碰到的問題就是,軟體應對變化的能力,裝飾者模式提高了軟體的彈性,增加了...
設計模式學習筆記(三) 工廠模式
工廠模式的定義 假如你有乙個類a,要例項化這個類,最簡單的方法就是a a new a 如果要做一 些初始化的工作,通常會把這些操作寫在a的構造方法裡例如 a a new a parmeter 但是,也許有很多的初始化內容,如果把所有內容都放在建構函式裡面,就很不合適。在這種情境下就可以使用工廠模式,...
設計模式學習三 裝修者模式
一.概念 動態的給乙個物件新增額外的職責。想要擴充套件功能的話,裝飾者提供了一種有別於繼承的另外一種選擇。二.uml component 概念中提到的物件介面 也就是 被裝飾者 concreatecomponent 未新增任何職責的,物件介面的子類 decorator 裝飾者抽象類 擴張了物件介面的...