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

}
也就是說,類和接口都不是實際的產品,都不能拿來用,類相當于模具(沒人會拿模具模具在商店里賣吧,估計只有對象工廠會買),而接口只相當于制做模具的規
格列表,如尺寸、角度等。而這些規格列表的內容需要在具體類中實現才可能成為具體的模具,如長度和寬度,如果在類中實現為長度等于寬度,那么這個類就成為
一個成方形的模具,如果長度不等于寬度,就是一個長方形的模具。然后再實例化這個模具(類),就生成出一個個正方形或長方形對象。
在面向對象理論中還有一個抽象類,這個抽象類其實就相當于一個半成品的模具。如只實現在長度和寬度(相當于在抽象類中已實現的方法),并沒有實現深度(這
個深度相當于抽象類中的抽象方法,這個抽象方法需要在抽象類的子類中實現)。所以這個模具就是半成品了。因此,是無法直接拿半成品的模具(抽象類)去生產
(實例化)產品(對象)的。
新浪微博:http://t.sina.com.cn/androidguy 昵稱:李寧_Lining