工廠模式是當需要new乙個物件時通過工廠去建立乙個物件。需要和建立的物件解耦時可以用工廠模式。
1.工廠模式分為:簡單工廠,工廠方法,抽象工廠
簡單工廠的特點:工廠類是乙個具體的類,通過工廠類的主要方法,如getinstance(),你用switch 或者if..else來建立所需要的物件。該實現方法不利於維護和擴充套件。比如需要怎麼加乙個db2資料來源,則需要新增具體產品子類並且需要修改工廠類,不好擴充套件。
(1)簡單工廠模式的編寫步驟//定義資料源介面
inte***ce datasource
//定義mysql資料來源實現類
class mysqldatasource implements datasource }
//定義sqlserver資料來源實現類
class sqlserverdatasource implements datasource
}//定義oracle資料來源實現類
class oracledatasource implements datasource
}//定義獲取資料源的工廠
class datasourcefactory
}}//測試
public class datasourcetest
}
工廠方法是把簡單工廠拆分為兩層,一層是抽象工廠,一層是抽象工廠的子類。工廠方法利於軟體的維護和二次開發。如果有新需求只需要新增對應的子類,而不是修改已有的類,比如增加乙個db2資料來源,只需要新增乙個db2產品子類,和db2的工廠子類就可以了。
(1)工廠方法的建立步驟//定義資料源介面
inte***ce datasource
//定義mysql資料來源實現類
class mysqldatasource implements datasource }
//定義sqlserver資料來源實現類
class sqlserverdatasource implements datasource
}//定義oracle資料來源實現類
class oracledatasource implements datasource
}//定義工廠抽象類
abstract class datasourcefactory
//定義mysql資料來源工廠類
class mysqldatasourcefactory extends datasourcefactory
}//定義sqlserver資料來源工廠類
class sqlserverdatasourcefactory extends datasourcefactory
}//定義oracle資料來源工廠類
class oracledatasourcefactory extends datasourcefactory
}//測試
public class datasourcetest
}
抽象工廠針對的是多產品,每乙個具體工廠類只負責建立抽象產品的某乙個具體子類的例項。
(1)抽象工廠的建立步驟public class test
}//定義乙個鋼筆介面
inte***ce ipen
//定義乙個高檔鋼筆
class uppen implements ipen }
//定義乙個低檔鋼筆
class dnpen implements ipen
}//定義乙個鉛筆介面
inte***ce ipencil
//定義乙個高檔鉛筆
class uppencil implements ipencil
}//定義乙個低檔鉛筆
class dnpencil implements ipencil
}//定義抽象工廠
abstract class ifactory
//定義高檔工廠實現
class upfactory extends ifactory
@override
ipencil createpencil() }
//定義低檔工廠實現
class dnfactory extends ifactory
@override
ipencil createpencil()
}
實現設計模式 工廠模式
工廠模式將建立物件的 從客戶 中分離,提供了一種在大系統中管理建立眾多物件的有效方法。當從配置檔案或流中建立物件時,經常採用這種模式。這裡提供一種通用實現,可以作為參考。include include namespace factory private allocator m allocate te...
工廠模式實現方式
public inte ce car然後是兩個具體實現 public class jeepcar implements car public class fordcar implements car 再是乙個工廠類 public class ca ctory if fordcar.class.equ...
c 設計模式 工廠方式模式
工廠方法模式是類的建立模式,又叫做虛擬構造子模式或多型性工廠模式。它的用意是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到子類中。簡單工廠模式的缺點 由於工廠類集中了所有產品建立邏輯的,如果不能正常工作的話會對系統造成很大的影響。如果增加新產品必須修改工廠角色的原始碼。工廠方法模式的優點 在 ...