Javascript面向?qū)ο笤O(shè)計一 工廠模式
更新時間:2011年12月20日 01:20:38 作者:
工廠模式抽象了創(chuàng)建具體對象的過程,但是在ECMAScript中無法創(chuàng)建類,所以就使用一種函數(shù)來封裝以特定接口創(chuàng)建對象的細節(jié)
1、工廠模式抽象了創(chuàng)建具體對象的過程,但是在ECMAScript中無法創(chuàng)建類,所以就使用一種函數(shù)來封裝以特定接口創(chuàng)建對象的細節(jié)。以一下情況為例,
有一個員工類,有姓名、年齡、職位屬性,
使用以上方法定義兩個員工,Jim,Sun
var Jim = CreateEmployee("jim", 22, "SoftWare Engineer");
var Sun = CreateEmployee("Sun",24,"Doctor");
然后分別使用SayName方法,讓兩位員工報上名來
Jim.sayName();
Sun.sayName();
函數(shù)CreateEmployee可以根據(jù)參數(shù)來構(gòu)建一個包含必要信息的Employee對象,可以無限次的調(diào)用這個函數(shù)。工廠模式雖然解決了創(chuàng)建多個相似對象的問題,但是卻沒有解決怎樣知道一個對象類型的問題。
有一個員工類,有姓名、年齡、職位屬性,
復(fù)制代碼 代碼如下:
function CreateEmployee(name, age, job) {
var Emp = new Object();
Emp.name = name;
Emp.age = age;
Emp.job = job;
Emp.sayName = function () {
alert(this.name);
};
return Emp;
}
var Emp = new Object();
Emp.name = name;
Emp.age = age;
Emp.job = job;
Emp.sayName = function () {
alert(this.name);
};
return Emp;
}
使用以上方法定義兩個員工,Jim,Sun
復(fù)制代碼 代碼如下:
var Jim = CreateEmployee("jim", 22, "SoftWare Engineer");
var Sun = CreateEmployee("Sun",24,"Doctor");
然后分別使用SayName方法,讓兩位員工報上名來
復(fù)制代碼 代碼如下:
Jim.sayName();
Sun.sayName();
函數(shù)CreateEmployee可以根據(jù)參數(shù)來構(gòu)建一個包含必要信息的Employee對象,可以無限次的調(diào)用這個函數(shù)。工廠模式雖然解決了創(chuàng)建多個相似對象的問題,但是卻沒有解決怎樣知道一個對象類型的問題。
您可能感興趣的文章:
- js面向?qū)ο笾R妱?chuàng)建對象的幾種方式(工廠模式、構(gòu)造函數(shù)模式、原型模式)
- JS面向?qū)ο蠡A(chǔ)講解(工廠模式、構(gòu)造函數(shù)模式、原型模式、混合模式、動態(tài)原型模式)
- 《javascript設(shè)計模式》學(xué)習(xí)筆記四:Javascript面向?qū)ο蟪绦蛟O(shè)計鏈?zhǔn)秸{(diào)用實例分析
- 《javascript設(shè)計模式》學(xué)習(xí)筆記三:Javascript面向?qū)ο蟪绦蛟O(shè)計單例模式原理與實現(xiàn)方法分析
- 《javascript設(shè)計模式》學(xué)習(xí)筆記二:Javascript面向?qū)ο蟪绦蛟O(shè)計繼承用法分析
- 《javascript設(shè)計模式》學(xué)習(xí)筆記一:Javascript面向?qū)ο蟪绦蛟O(shè)計對象成員的定義分析
- JS面向?qū)ο缶幊袒A(chǔ)篇(三) 繼承操作實例詳解
- JS面向?qū)ο缶幊袒A(chǔ)篇(二) 封裝操作實例詳解
- JS面向?qū)ο缶幊袒A(chǔ)篇(一) 對象和構(gòu)造函數(shù)實例詳解
- 《javascript設(shè)計模式》學(xué)習(xí)筆記五:Javascript面向?qū)ο蟪绦蛟O(shè)計工廠模式實例分析
相關(guān)文章
JavaScript 創(chuàng)建對象和構(gòu)造類實現(xiàn)代碼
JavaScript學(xué)習(xí)筆記:創(chuàng)建對象和構(gòu)造類.2009-07-07JavaScript 類型的包裝對象(Typed Wrappers)
JavaScript 有一套類型的包裝對象,需要的朋友可以參考下。2011-10-10一個cssQuery對象 javascript腳本實現(xiàn)代碼
原創(chuàng)的一個cssQuery對象,類似于jQuery的$函數(shù)通過css選擇器選擇DOM元素,目前還不支持xPath語法2009-07-07

學(xué)習(xí)面向?qū)ο笾嫦驅(qū)ο蟮男g(shù)語
學(xué)習(xí)面向?qū)ο笾嫦驅(qū)ο蟮男g(shù)語,學(xué)習(xí)面向?qū)ο笤O(shè)計的朋友可以參考下。
2010-11-11 
js面向?qū)ο?多種創(chuàng)建對象方法小結(jié)
js面向?qū)ο?多種創(chuàng)建對象方法小結(jié),需要的朋友可以參考下
2012-05-05 
JavaScript面向?qū)ο?極簡主義法minimalist approach)
荷蘭程序員 Gabor de Mooij 提出了一種比 Object.create ()更好的新方法,他稱這種方法為極簡主義法(minimalist approach)。這也是我推薦的方法
2012-07-07