對象的膚淺認識和工廠模式

搞了三年的過程化語言,關於對象的概念以前也粗略的瞭解過,忘了那本書介紹的,說一輛車就是對象,那時候的理解也就是對象就是封裝的概念。最近看了一本JavaScript的書,書中舉了個例子,對我很有啓發。寫道:人呢,就是一個對象,比如定義一個person,怎麼描述一個人呢,可是說他的體重weight,也可以說他的身高height,那麼weight,height就是他的屬性,人呢也可以睡覺sleep,工作work,所以sleep和work就是他的方法,或者稱爲函數,(其實我更願意稱其爲功能)。所以可以這樣寫person.weight;person.work();總之對象呢,就是屬性和方法的統稱。而每個人又可以你我他,每一個具體的人就是person這個對象的一個具體實例了。關於對象,我就是這麼理解啦。
今天講到創建對象的的模式,普通的創建對象很簡單,`
var person = new Object;
person.weight = 120;
person.height = 170;
person.work = function(){
return ‘我會努力工作滴’;
} ;
如果我想在創建一個與之類似的對象呢,屬性也是weight,height,方法也是work,假如在寫一遍無所謂,如果很多的話那不是要瘋了,所以就講了一種工廠模式,如下面這樣:
function createObject(weight,height ){
var o = new Object();
o.weight= weight;
o.height = height ;
o.work = function(){
return ‘我會努力工作滴’;
};
return o;
}
var person1 = createObject(‘jay’,27);
var person2 = createObject(‘will’,28);
這種模式相當於提取了創建具體對象的過程中的相同點,用函數來封裝特定接口創建對象的細節。但是這種方法沒有區分出每個實例對應着哪個對象。關於這個問題,明天再繼續學習。(感覺很low,一步一個腳印的走吧。。。。。)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章