設計模式 工廠模式的實現方式

2021-08-22 07:19:41 字數 2178 閱讀 3947

工廠模式是當需要new乙個物件時通過工廠去建立乙個物件。需要和建立的物件解耦時可以用工廠模式。

1.工廠模式分為:簡單工廠,工廠方法,抽象工廠

簡單工廠的特點:工廠類是乙個具體的類,通過工廠類的主要方法,如getinstance(),你用switch 或者if..else來建立所需要的物件。該實現方法不利於維護和擴充套件。比如需要怎麼加乙個db2資料來源,則需要新增具體產品子類並且需要修改工廠類,不好擴充套件。

//定義資料源介面

inte***ce datasource

//定義mysql資料來源實現類

class mysqldatasource implements datasource }

//定義sqlserver資料來源實現類

class sqlserverdatasource implements datasource

}//定義oracle資料來源實現類

class oracledatasource implements datasource

}//定義獲取資料源的工廠

class datasourcefactory

}}//測試

public class datasourcetest

}

(1)簡單工廠模式的編寫步驟

工廠方法是把簡單工廠拆分為兩層,一層是抽象工廠,一層是抽象工廠的子類。工廠方法利於軟體的維護和二次開發。如果有新需求只需要新增對應的子類,而不是修改已有的類,比如增加乙個db2資料來源,只需要新增乙個db2產品子類,和db2的工廠子類就可以了。

//定義資料源介面

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()

}

(1)抽象工廠的建立步驟

實現設計模式 工廠模式

工廠模式將建立物件的 從客戶 中分離,提供了一種在大系統中管理建立眾多物件的有效方法。當從配置檔案或流中建立物件時,經常採用這種模式。這裡提供一種通用實現,可以作為參考。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 設計模式 工廠方式模式

工廠方法模式是類的建立模式,又叫做虛擬構造子模式或多型性工廠模式。它的用意是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到子類中。簡單工廠模式的缺點 由於工廠類集中了所有產品建立邏輯的,如果不能正常工作的話會對系統造成很大的影響。如果增加新產品必須修改工廠角色的原始碼。工廠方法模式的優點 在 ...