綜合使用抽象工廠、工廠方法的應用
假設有一個應用,需要對資料庫進行操作。雖然操作的表是一樣的,但是,不同的使用者連線的庫可能不同,還可能不同的資料庫存在於不同的資料庫系統上。如何來實現呢?綜合抽象工廠、工廠方法的使用,我們得到以下解決方法。
/* * 抽象工廠,定義對資料庫的各種操作。 */ public Interface Operations { public int operation1(); public void operation2(String paramString1); // ... 其他操作 ... } /* * 工廠方法,根據不同資料庫系統及資料庫,建立操作工廠。 */ public class OperationsFactory { public static final int DBMS_MYSQL = 1; public static final int DBMS_MSSQL = 2; public static final int DBMS_ORACLE = 3; // 工具類,禁止例項化 private OperationsFactory() { } public static Operations getOperations(int dbms, String dbName) { Operations op; switch (dbms) { case DBMS_MYSQL: // ... 獲得 MySQL 資料庫實現 ... op = new MysqlOperations(dbName); break; case DBMS_MSSQL: // ... 獲得 Microsoft SQL Server 資料庫實現 ... op = new MssqlOperations(dbName); break; case DBMS_ORACLE: // ... 獲得 Oracle 資料庫實現 ... op = new OracleOperations(dbName); break; default: throw new Exception("Unsupported dbms: " + dbms); } return op; } } /* * 抽象工廠的具體實現,針對 MySQL 資料庫系統。 * 類似的可以有針對 M$ SQL Server 及 Oracle 的具體實現。 */ public class MysqlOperations implements Operations { private Connection conn; public MysqlOperations(String dbName) { // ... 根據 dbName 生成連線 conn = ... } // ... 實現介面方法 operation1 ... public int operation1() { // 使用 conn 對資料庫進行操作 ... } // ... 實現介面方法 operation2 ... public void operation2(String paramString1) { // 使用 conn 對資料庫進行操作 ... } } <p> |
這樣,使用者無須知道它連線的具體資料庫系統以及資料庫名,就可以執行他需要的操作(使用抽象工廠介面),完成他自身的任務。具體使用何資料庫系統上的哪個庫,在使用者登入後,由管理者指定(使用工廠方法工具類)。
相關文章
- 建立型:工廠模式-工廠方法、抽象工廠模式抽象
- 簡單工廠,工廠方法和抽象工廠抽象
- 簡單工廠 VS 工廠方法 VS 抽象工廠抽象
- 簡單工廠、工廠方法和抽象工廠模式抽象模式
- 設計模式-簡單工廠、工廠方法模式、抽象工廠模式設計模式抽象
- 一篇搞定工廠模式【簡單工廠、工廠方法模式、抽象工廠模式】模式抽象
- 工廠方法模式與抽象工廠模式的區別模式抽象
- 抽象工廠模式-與-工廠方法模式區別抽象模式
- Java設計模式之簡單工廠、工廠方法和抽象工廠Java設計模式抽象
- 設計模式之工廠方法模式|抽象工廠模式設計模式抽象
- 無廢話設計模式(1)--簡單工廠、工廠方法、抽象工廠設計模式抽象
- 簡單工廠模式、工廠方法模式和抽象工廠模式有何區別?模式抽象
- 簡單工廠,工廠方法和抽象工廠模式(我也湊湊熱鬧)抽象模式
- 設計模式之工廠模式!深入解析簡單工廠模式,工廠方法模式和抽象工廠模式設計模式抽象
- 請教banq 抽象工廠模式怎樣和工廠方法模式配合使用抽象模式
- 簡單工廠模式、工廠模式、抽象工廠模式比較模式抽象
- 抽象工廠模式抽象模式
- 簡單工廠和抽象工廠的區別抽象
- 簡單工廠模式和抽象工廠模式模式抽象
- 工廠三兄弟之抽象工廠模式(二)抽象模式
- 工廠三兄弟之抽象工廠模式(一)抽象模式
- Java 設計模式之工廠方法模式與抽象工廠模式Java設計模式抽象
- 用抽象工廠方法構建 Flutter 主題抽象Flutter
- 工廠模式 抽象模式模式抽象
- 建立型-抽象工廠抽象
- java 抽象工廠模式Java抽象模式
- 06: 抽象工廠模式抽象模式
- 工廠模式和抽象工廠的區別是什麼?模式抽象
- 設計模式學習筆記(三)簡單工廠、工廠方法和抽象工廠之間的區別設計模式筆記抽象
- C# 設計模式(1)——簡單工廠模式、工廠模式、抽象工廠模式C#設計模式抽象
- 設計模式(三)抽象工廠方法模式設計模式抽象
- 工廠模式與抽象工廠!到底有好厲害!模式抽象
- Python 實現工廠模式、抽象工廠,單例模式Python模式抽象單例
- 設計模式學習(二)工廠模式——抽象工廠模式設計模式抽象
- 【Python】抽象工廠模式Python抽象模式
- 設計模式----抽象工廠設計模式抽象
- 設計模式 – 抽象工廠設計模式抽象
- 建立型模式:抽象工廠模式抽象