程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 使用工廠方法模式實現多數據庫WinForm手機號碼查詢器(附源碼)

使用工廠方法模式實現多數據庫WinForm手機號碼查詢器(附源碼)

編輯:C#入門知識

先講一下簡單工廠模式、工廠方法模式、抽象工廠模式的東西:

  • 簡單工廠模式(Simple Factory Pattern):工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態實例化相關類,也就是說產品的創建邏輯集中於一個工廠類,客戶端只需要傳遞不同的參數給工廠,這時情況是:一個工廠創建一個產品,所有的具體工廠繼承自一個抽象工廠;對於客戶端來說,不存在與具體產品的依賴;
  • 工廠方法模式(Factory Method Pattern):提前定義用於創建對象的接口,讓子類決定實例化具體的某一個類,即在工廠和產品中間增加接口,工廠不再負責產品的創建,由接口針對不同條件返回具體的類實例,由具體類實例去實現;
  • 抽象工廠模式(Abstract Factory Pattern):提供一個創建一系統或相互依賴對象的接口,不需要指定具體類。抽象工廠正如其名字所說,它抽象的是工廠接口,因此它面向的是多個平等等級結構,其建立對象的原則是以功能相似的對象為單位劃分需要建立的對象。

簡單工廠並不屬於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>
///
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved