C 設計模式之簡單工廠篇

2021-04-12 19:25:02 字數 1230 閱讀 2794

首先定義乙個介面,具體名為idatabase,在這個介面中,定義好資料庫操作的方法名和引數,以及返回值,本案例中我定義如下方法:

public inte***ce idatabase

catch(sqlexception) }

public bool open()

catch(sqlexception) }

public bool command(string sql)

catch(sqlexception) }

public void close()

public class oracle : idatabase

public bool connect(string connectstring)

public bool open()

public bool command(string sql)

public void close()

嗯,不錯,你有多少種資料庫就編寫不同的實現類**吧,這裡就不贅述了,接下來呢?聰明的讀者一定會想到這個問題:這個介面和這麼多的實現類怎麼用啊?我們再定義乙個稱之為工廠的類,由它來決定選用哪種資料庫為進行操作,這個模擬較簡單:

public class factory }

看明白了嗎?好了,我們該讓尊敬的、永遠高貴的客戶出場了,只有他,唯有他才有決定用哪種資料庫的最高許可權,你看,他這樣用:

public class client

can't be connected.",dbtype);

return;

} //open database.

if(db.open()==false)

can't be opened, the connect string is .",dbtype,dbconnectstring);

return;

} //execute sql command.

string sql = "update order set price = price * 0.07 where productid = '002'";           

if(db.command(sql))

else

",sql);

db.close();

return;

} db.close();

} 好了,工程峻工了,你們明白了沒有?

思考題:簡單工廠的應用場合和侷限性?

C 設計模式之簡單工廠篇

首先定義乙個介面,具體名為idatabase,在這個介面中,定義好資料庫操作的方法名和引數,以及返回值,本案例中我定義如下方法 public inte ce idatabase catch sqlexception public bool open catch sqlexception public...

C 設計模式之簡單工廠篇

首先定義乙個介面,具體名為idatabase,在這個介面中,定義好資料庫操作的方法名和引數,以及返回值,本案例中我定義如下方法 public inte ce idatabase catch sqlexception public bool open catch sqlexception public...

C 設計模式之簡單工廠篇

首先定義乙個介面,具體名為idatabase,在這個介面中,定義好資料庫操作的方法名和引數,以及返回值,本案例中我定義如下方法 public inte ce idatabase bool connect string connectstring bool open bool command stri...