先講一下簡單工廠模式、工廠方法模式、抽象工廠模式的東西:
簡單工廠並不屬於23種基本設計模式中,它是抽象工廠模式的一個特例;抽象工廠與工廠方法區別在於它們抽象的對象不同:工廠方法針對產品進行抽象,而抽象工廠抽象針對工廠。因此可以認為工廠方法是抽象工廠的一種極端情況,工廠方法模式用來創建一個產品的等級結構,它一般只有一個方法,創建一種產品;而抽象工廠是用來創建多個產品的等級結構,一般有多個方法,創建一系列產品。
手機號碼查詢設計
此程序主要功能就是根據手機號碼段查詢相應的號碼歸屬地。數據來自網絡,數據表結構如下
數據記錄超過17萬條
這裡我使用了Sqlite數據庫,將此數據庫文件轉換為Sqlite數據庫文件。
主程序界面設計如下:
業務邏輯分析
主程序調用業務邏輯層BLL,BLL使用抽象工廠DALFactory方法,DALFactory創建DAO實例對象,接口層IDAL定義數據操作接口方法,由數據訪問層通過各自的公用數據操作類庫進行讀寫數據庫,實現對實體類Model的訪問。
解決方案文件列表如圖
其中DBUtility為公共數據訪問類庫。三個數據訪問層SQLServerDAL、SqliteDAL和OleDAL分別對應Sql Server、Sqlite、Access數據庫。這裡我正在使用的是SqliteDAL。
具體實現
建立實體類進行對象封裝
App.config定義選用的DAL及數據庫連接信息
代碼public class list
{
private int id;
/// <summary>
/// 編號
/// </summary>
public int Id
{
get { return id; }
set { id = value; }
}
private string num;
/// <summary>
/// 號碼段(手機號前7位)
/// </summary>
public string Num
{
get { return num; }
set { num = value; }
}
private string code;
/// <summary>
/// 郵政編碼
/// </summary>
public string Code
{
get { return code; }
set { code = value; }
}
private string city;
/// <summary>
///