Javascript面向?qū)ο笤O(shè)計(jì)一 工廠模式
更新時(shí)間:2011年12月20日 01:20:38 作者:
工廠模式抽象了創(chuàng)建具體對(duì)象的過(guò)程,但是在ECMAScript中無(wú)法創(chuàng)建類(lèi),所以就使用一種函數(shù)來(lái)封裝以特定接口創(chuàng)建對(duì)象的細(xì)節(jié)
1、工廠模式抽象了創(chuàng)建具體對(duì)象的過(guò)程,但是在ECMAScript中無(wú)法創(chuàng)建類(lèi),所以就使用一種函數(shù)來(lái)封裝以特定接口創(chuàng)建對(duì)象的細(xì)節(jié)。以一下情況為例,
有一個(gè)員工類(lèi),有姓名、年齡、職位屬性,
使用以上方法定義兩個(gè)員工,Jim,Sun
var Jim = CreateEmployee("jim", 22, "SoftWare Engineer");
var Sun = CreateEmployee("Sun",24,"Doctor");
然后分別使用SayName方法,讓兩位員工報(bào)上名來(lái)
Jim.sayName();
Sun.sayName();
函數(shù)CreateEmployee可以根據(jù)參數(shù)來(lái)構(gòu)建一個(gè)包含必要信息的Employee對(duì)象,可以無(wú)限次的調(diào)用這個(gè)函數(shù)。工廠模式雖然解決了創(chuàng)建多個(gè)相似對(duì)象的問(wèn)題,但是卻沒(méi)有解決怎樣知道一個(gè)對(duì)象類(lèi)型的問(wèn)題。
有一個(gè)員工類(lèi),有姓名、年齡、職位屬性,
復(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;
}
使用以上方法定義兩個(gè)員工,Jim,Sun
復(fù)制代碼 代碼如下:
var Jim = CreateEmployee("jim", 22, "SoftWare Engineer");
var Sun = CreateEmployee("Sun",24,"Doctor");
然后分別使用SayName方法,讓兩位員工報(bào)上名來(lái)
復(fù)制代碼 代碼如下:
Jim.sayName();
Sun.sayName();
函數(shù)CreateEmployee可以根據(jù)參數(shù)來(lái)構(gòu)建一個(gè)包含必要信息的Employee對(duì)象,可以無(wú)限次的調(diào)用這個(gè)函數(shù)。工廠模式雖然解決了創(chuàng)建多個(gè)相似對(duì)象的問(wèn)題,但是卻沒(méi)有解決怎樣知道一個(gè)對(duì)象類(lèi)型的問(wèn)題。
您可能感興趣的文章:
- js面向?qū)ο笾R?jiàn)創(chuàng)建對(duì)象的幾種方式(工廠模式、構(gòu)造函數(shù)模式、原型模式)
- JS面向?qū)ο蠡A(chǔ)講解(工廠模式、構(gòu)造函數(shù)模式、原型模式、混合模式、動(dòng)態(tài)原型模式)
- 《javascript設(shè)計(jì)模式》學(xué)習(xí)筆記四:Javascript面向?qū)ο蟪绦蛟O(shè)計(jì)鏈?zhǔn)秸{(diào)用實(shí)例分析
- 《javascript設(shè)計(jì)模式》學(xué)習(xí)筆記三:Javascript面向?qū)ο蟪绦蛟O(shè)計(jì)單例模式原理與實(shí)現(xiàn)方法分析
- 《javascript設(shè)計(jì)模式》學(xué)習(xí)筆記二:Javascript面向?qū)ο蟪绦蛟O(shè)計(jì)繼承用法分析
- 《javascript設(shè)計(jì)模式》學(xué)習(xí)筆記一:Javascript面向?qū)ο蟪绦蛟O(shè)計(jì)對(duì)象成員的定義分析
- JS面向?qū)ο缶幊袒A(chǔ)篇(三) 繼承操作實(shí)例詳解
- JS面向?qū)ο缶幊袒A(chǔ)篇(二) 封裝操作實(shí)例詳解
- JS面向?qū)ο缶幊袒A(chǔ)篇(一) 對(duì)象和構(gòu)造函數(shù)實(shí)例詳解
- 《javascript設(shè)計(jì)模式》學(xué)習(xí)筆記五:Javascript面向?qū)ο蟪绦蛟O(shè)計(jì)工廠模式實(shí)例分析
相關(guān)文章
javascript最常用與實(shí)用的創(chuàng)建類(lèi)的代碼
組合構(gòu)造函數(shù)模式和原型模式2010-08-08
Javascript面向?qū)ο缶幊蹋ㄈ?非構(gòu)造函數(shù)的繼承
這個(gè)系列的第一部分介紹了"封裝",第二部分介紹了使用構(gòu)造函數(shù)實(shí)現(xiàn)"繼承"。2011-08-08
javascript 面向?qū)ο缶幊?萬(wàn)物皆對(duì)象
javascript幾乎成了如今web開(kāi)發(fā)人員必學(xué)必會(huì)的一門(mén)語(yǔ)言,但很多人卻只停在了一些表單驗(yàn)證等基礎(chǔ)操作層面上,在面向?qū)ο笳Z(yǔ)言大行其道的當(dāng)下,我們需要去學(xué)習(xí)javascript的面向?qū)ο蟮闹R(shí),以便更好的掌握javascript、為深入理解各種腳本框架打好基礎(chǔ)。2009-09-09
[推薦]javascript 面向?qū)ο蠹夹g(shù)基礎(chǔ)教程
看了很多介紹javascript面向?qū)ο蠹夹g(shù)的文章,很暈.為什么?不是因?yàn)閷?xiě)得不好,而是因?yàn)樘願(yuàn)W. javascript中的對(duì)象還沒(méi)解釋清楚怎么回事,一上來(lái)就直奔主題,類(lèi)/繼承/原型/私有變量....2009-03-03
javascript面向?qū)ο笕腴T(mén)基礎(chǔ)詳細(xì)介紹
本文章介紹了js中常用的對(duì)象包括有JavaScript對(duì)象簡(jiǎn)介 字符串對(duì)象 date() 數(shù)組 數(shù)學(xué)對(duì)象 函數(shù)對(duì)象 應(yīng)用介紹,有需要了解的同學(xué)可參考一下2012-09-09
用JavaScript實(shí)現(xiàn)單繼承和多繼承的簡(jiǎn)單方法
JavaScript是一種強(qiáng)大的多泛型編程語(yǔ)言,其融合了面向過(guò)程、面向?qū)ο蠛秃瘮?shù)式編程于一身,具備強(qiáng)大的表現(xiàn)能力。
2009-03-03
javascript new fun的執(zhí)行過(guò)程
new fun的執(zhí)行過(guò)程分析,學(xué)習(xí)面向?qū)ο蟮呐笥芽梢詤⒖枷隆?/div> 2010-08-08

