Javascript Design Pattern Builder
Builder模式主要在同樣的建構過程中創建不同的表示,也就是說不必事先定義方法內容,透過建造者模式在適當時機進行建造,在javascript語言中則使用callback方式完成,主要目的是職責分離。
function counter(name,timeEnd, callback) { //定義一個counter方法,目的當timeEnd到指定的數值時進行builder所創建的工作
var timespan = 1000;
var myTimer = setInterval(timer, timespan);
function timer() {
timeEnd -= timespan
var output = (timeEnd / timespan) + '...';
console.log(name + '剩下:' + output + '秒');
if (timeEnd <= 0) {
callback();
clearInterval(myTimer);
}
}
}
function doWork() {
console.log('doWork');
}
function doEat(){
console.log('doEat');
}
//A、B分別使用兩個計時器,3秒後吃飯,10秒後工作
counter('A',3000, doEat);
counter('B',10000, doWork);