抽象工廠實戰

2021-07-02 23:38:49 字數 1769 閱讀 1457

在這個例子中主要的是建立兩個系列的產品,乙個是運算元據庫的dao系列,乙個是操作業務邏輯的manager系列。所以在此利用抽象工廠進行實現。如下:

/**

* 物料業務邏輯層介面

*/public inte***ce itemmanager

/** * 物料資料訪問介面 */

public inte***ce itemdao

/** * 抽象工廠,主要建立兩個系列的產品: 

* 1.manager系列 *

2.dao系列 */

public class beanfactory

catch (documentexception e)

}

//對外介面,獲取本類唯一物件

public static beanfactory getinstance()

//儲存service相關物件

private map servicemap=new hashmap();

//儲存dao相關物件 private map daomap=new hashmap();

//根據編號取得service系列產品

public synchronized object getserviceobject(class c)

element beanelt= (element)doc.selectsinglenode("//service[@id=\""+ c.getname() +"\"]");

//取出配置檔案中屬性為class的值

string classname=beanelt.attributevalue("class");

//將classname裝載成類

object service=null;

try

catch (exception e) return service; }

/** * 根據產品編號取得dao系列產品 */

public synchronized object getdaoobject(class c)

element beanelt= (element)doc.selectsinglenode("//dao[@id=\""+ c.getname() +"\"]");

//取出配置檔案中屬性為class的值

string classname=beanelt.attributevalue("class");

//將classname裝載成類

object dao=null;

try catch (exception e)

return dao; }

}

1)首先在初始化servlet中對工廠進行建立

2)在產品系列的抽象類中獲取並應用

3)在第二步中的抽象類的子類中可以直接對itemmanager進行使用了。

抽象工廠模式 抽象工廠模式

抽象工廠模式其實是圍繞了乙個超級工廠建立其他的工廠 可參考工廠模式 這個超級工廠又可以想像成是其他工廠的工廠,這種設計模式是一種建立型模式。在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指出其類。每個生成的工廠都能按照工廠模式提供物件。意圖提供乙個建立一系列相關或相互依賴物件的介面,...

工廠模式 抽象工廠

在看抽象工廠前,我們需要引入兩個概念 1 產品等級結構 2 產品族 我們現在有這樣兩個產品型別 汽車 car 自行車 bike 有兩家公司 寶馬 bmw 奧迪 audi 每乙個廠家都能夠生產這兩種型別的產品 bmw介面 bmwcar,bmwbike audi介面 audicar,audibike 在...

工廠模式 抽象工廠

1 為了提高內聚和松耦合,我們經常會抽象出一些類的公共介面以形成抽象基類或者介面。這樣我們可以通過宣告乙個指向基類的指標來指向實際的子類實現,達到了多型的目的。這裡很容易出現的乙個問題是 若干個子類繼承自抽象基類,我們必須在每次要用到子類的地方就寫如 new 的 這裡帶來兩個問題 1 客戶程式設計師...