本文為原創(chuàng),如需轉(zhuǎn)載,請(qǐng)注明作者和出處,謝謝!
大家也許都知道做工藝器或是工廠里做生產(chǎn)某些產(chǎn)品的模具模具。如做一個(gè)金屬的五角星,只要將鋼水罐到五角星的模具模具里就可以很容易地制做五角星。
我們也可以將類比喻成做五角星的模具。 而生產(chǎn)出的一個(gè)個(gè)五角星就是一個(gè)個(gè)對(duì)象。 為了建立不同的對(duì)象(有的是金屬的、有的塑料的,等等),可通過(guò)向模具里灌入不同的液態(tài)材料就可以制做。這也相當(dāng)于向類的構(gòu)造方法中傳入不同的參數(shù)(相當(dāng)于不同的液態(tài)材料)。
還有就是接口,如果說(shuō)類是對(duì)象的抽象,那么接口就是類的抽象。
我們也可以將接口看成是制做這個(gè)五角星模具的規(guī)格列表(相當(dāng)于接口中的抽象方法)。也就是說(shuō),只有這個(gè)模具(類)符合(實(shí)現(xiàn))相應(yīng)的規(guī)格(接口),才會(huì)成為制做五角星的模具模具。
哈哈,當(dāng)然,這個(gè)使用模具生成五角星及其他產(chǎn)品的工廠可以看成是對(duì)象工廠。
class ObjectFactory
{
public static 五解星 create五角星() {}
public static 圓 create圓() {}
public static 橢圓 create橢圓() {}

}
也就是說(shuō),類和接口都不是實(shí)際的產(chǎn)品,都不能拿來(lái)用,類相當(dāng)于模具(沒(méi)人會(huì)拿模具模具在商店里賣吧,估計(jì)只有對(duì)象工廠會(huì)買),而接口只相當(dāng)于制做模具的規(guī)
格列表,如尺寸、角度等。而這些規(guī)格列表的內(nèi)容需要在具體類中實(shí)現(xiàn)才可能成為具體的模具,如長(zhǎng)度和寬度,如果在類中實(shí)現(xiàn)為長(zhǎng)度等于寬度,那么這個(gè)類就成為
一個(gè)成方形的模具,如果長(zhǎng)度不等于寬度,就是一個(gè)長(zhǎng)方形的模具。然后再實(shí)例化這個(gè)模具(類),就生成出一個(gè)個(gè)正方形或長(zhǎng)方形對(duì)象。
在面向?qū)ο罄碚撝羞€有一個(gè)抽象類,這個(gè)抽象類其實(shí)就相當(dāng)于一個(gè)半成品的模具。如只實(shí)現(xiàn)在長(zhǎng)度和寬度(相當(dāng)于在抽象類中已實(shí)現(xiàn)的方法),并沒(méi)有實(shí)現(xiàn)深度(這
個(gè)深度相當(dāng)于抽象類中的抽象方法,這個(gè)抽象方法需要在抽象類的子類中實(shí)現(xiàn))。所以這個(gè)模具就是半成品了。因此,是無(wú)法直接拿半成品的模具(抽象類)去生產(chǎn)
(實(shí)例化)產(chǎn)品(對(duì)象)的。
新浪微博:http://t.sina.com.cn/androidguy 昵稱:李寧_Lining