背景: 手頭現有的乙個專案, 是給一家企業做的電子商務的**, 是用 sql server 作為資料庫的. 之後, 接到另外一家需求類似的專案, 但是是用 access, 不能使用 sql server, 需要修改原來的**. 結果, cv 一大頓, 錯誤百出. 試想, 如果將來還要使用 oracle 資料庫, 那麼估計應該就直接死人了.
最基本的訪問資料的程式為了簡化問題, 這裡我們僅僅提取出最簡單的表結構.
public
class user
public
void
set_id(int _id)
public string getname()
public
void
setname(string name)
}
public
class sqlserveruser
public user getuser(int id)
}
public
class main
}
但是這個樣子寫下去的話, 後期的維護直接懵逼啊. 改變資料庫必然要改動**, 這是不可避免的. 但是我們需要做這樣一件事, 優化**, 做到: 改動最少的**, 就可以實現不同資料庫的訪問.
工廠方法模式的資料訪問程式
這裡寫**片
抽象工廠模式 抽象工廠模式
抽象工廠模式其實是圍繞了乙個超級工廠建立其他的工廠 可參考工廠模式 這個超級工廠又可以想像成是其他工廠的工廠,這種設計模式是一種建立型模式。在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指出其類。每個生成的工廠都能按照工廠模式提供物件。意圖提供乙個建立一系列相關或相互依賴物件的介面,...
2 抽象工廠模式
參考 工廠方法模式和抽象工廠模式不好分清楚,他們的區別如下 工廠方法模式 乙個抽象產品類,可以派生出多個具體產品類。乙個抽象工廠類,可以派生出多個具體工廠類。每個具體工廠類只能建立乙個具體產品類的例項。抽象工廠模式 多個抽象產品類,每個抽象產品類可以派生出多個具體產品類。乙個抽象工廠類,可以派生出多...
2 抽象工廠模式
一 基本模式 1.抽象工廠,具體工廠,抽象產品,具體產品作為其要素 2.具體工廠生產出具有 抽象產品 協議方法的產品 3.生產出的具體產品細節對使用者透明,使用者只需知道抽象產品的協議即可。4.使用時 abstractproduct aproduct concretefactory.createpr...