一、創(chuàng)建模式
創(chuàng)建模式分為類的創(chuàng)建模式和對象的創(chuàng)建模式兩種:
1、 類的創(chuàng)建模式:類的創(chuàng)建模式使用繼承關(guān)系,把類的創(chuàng)建延遲到子類,從而封裝了客戶端將得到哪些具體類的信息,并且隱藏了這些類的實(shí)例是如何被創(chuàng)建和放在一起的。
2、 對象的創(chuàng)建模式:而對象的創(chuàng)建模式則把對象的創(chuàng)建過程動態(tài)地委派給另一個對象,從而動態(tài)地決定客戶端將得到哪些具體類的實(shí)例,以及這些類的實(shí)例是如何被創(chuàng)建和組合在一起的。
A、 簡單工廠模式Simple Factory<Static Factory Method靜態(tài)工廠方法>
簡單工廠模式就是由一個工廠類根據(jù)傳入的參量決定創(chuàng)建出哪一種產(chǎn)品類的實(shí)例。
實(shí)例:
商店-----------à銷貨員[工廠] -------賣----à水果[抽象產(chǎn)品]<蘋果[產(chǎn)品一]、梨[產(chǎn)品二]、草莓[產(chǎn)品三]>
用戶告訴銷貨員水果的名稱,銷貨員通過水果名稱找到相應(yīng)的水果;
interface水果 (){
價格;
重量;
產(chǎn)地;
}
Class蘋果() implements 水果{
蘋果價格;
蘋果重量;
蘋果產(chǎn)地;
蘋果品種;
蘋果采摘日期;
}
Class 梨() implements 水果{
梨價格;
梨重量;
梨產(chǎn)地;
梨品種;
含糖量;
梨采摘日期;
}
Class 草莓() implements 水果{
草莓價格;
草莓重量;
草莓品種;
……
草莓采摘日期;
}
Class shop<銷貨員>(){
//創(chuàng)建靜態(tài)工廠
Public static 水果 factory(String 水果名稱) throws 水果未存在異常{
If(“蘋果”.equals(水果名稱)){
Return new 蘋果();
}else If(“梨”.equals(水果名稱)){
Return new 梨();
}else If(“草莓”.equals(水果名稱)){
Return 草莓();
}else{
Throw 水果未存在異常;
}
}
}
獲取水果:
Try{
蘋果 A = Shop<銷貨員>.factory(“蘋果”);
梨 A = Shop<銷貨員>.factory(“梨”);
}catch(Exception e){
System.out.println(“水果未存在異常……”);
}
結(jié)構(gòu)圖:

學(xué)習(xí)中......