谢谢,豁然开朗,其实这个Connection类(名字我也觉得很不好,不如用类似DB_Sql的)
可以直接写成个singleton,保持一个连接,从开启bbsd到结束bbsd一直开着一个连接,
反正我最多也就用一个连接(目前)。
设计方面我同意你的观点,再完善总结一下:
[DB_Factory]
|
+------------------+---------+--------------+
| | |
[DB_Sql_Factory] | |
+-------------+---------------+ | |
| | | | |
[DB_MySql] [DB_PostgreSql] [DB_Oracle] | |
[DB_File_Factory] |
[DB_XML_Factory]
现有的bbs数据模块在[DB_File_Factory]这,
sql模块在[DB_Sql_Factory]这,未来如果xml可行,就[DB_XML_Factory]这,适合不同开发者的口味,当然,数据间的转换工具也是个问题,不过不太大
DB_Factory的操作统一,比如
Topic topic = DB_Factory.getInstance().getTopic(12341);
然后,DB_Sql_Factory的操作统一(标准sql):
ResultSet = DB_Sql_Factory.getInstance().query("select ...");
最后DB_MySql等是各自的实现.
【 在 flyriver@smth.org (江~~好想家) 的大作中提到: 】
: 【 在 hzt.bbs@ytht.net (jth) 的大作中提到: 】
: : 前一段时间我写bbs用的连接池(写的过于simple了,没设定上限,现在不用了)类关系:
: : [Connection::Connection()]使用ConnectionPool.getInstance().checkOut()获取一个free连接
: : [Connection::~Connection()]使用checkIn()返回连接
: : demo:
: : {
: : Connection conn;
: : conn.query("select ...");
: ...................
--
FROM 61.235.136.251