从一个ConnectionPool的实现看design pattern的运用 (四)
来源:互联网 发布:mac mini 387 评测 编辑:程序博客网 时间:2024/05/21 17:34
从一个ConnectionPool的实现看design pattern的运用 (四)
好了,同学们,大家对上回的“李四猜想”有没有结果呀?
我们的口号是?。。。。。。
“没有蛀牙”!
No! 是“用户至上”!
既然用户有容易忘的可能,那就证明我们的工作做得不好。我们为什么非要用户做他们做不好或容易弄错的事呢?
好吧,让我们知错就改:
public interface ConnectionMan extends PooledConnection.Pool{
//在这个interface里,我们不再要求程序员必须封装Connection, 他们只需要直接返回Connection对象。 实际上,程序员可以完全忘记封装这码事。
//我们将对返回的对象进行封装。
Connection getConnection()throws SQLException;
void clear();
void closeConnection(Connection conn);
}
//然后,我们用一下的decorator类对返回值进行封装
public class ConnectionMan2ConnectionPool implements ConnectionPool{
public final Connection getConnection()throws SQLException{
return PooledConnection.decorate(man.getConnection(), man);
}
public final void clear(){
man.clear();
}
private final ConnectionMan man;
private ConnectionMan2ConnectionPool(ConnectionMan man){
this.man = man;
}
public static ConnectionPool decorate(ConnectionMan man){
return new ConnectionMan2ConnectionPool(man);
}
}
这样,程序员只需要实现一个辅助interface ConnectionMan. 完全不要考虑封装Connection的事。然后再用我们的ConnectionMan2ConnectionPool类把它转换成ConnectionPool, 交给ConnectionPool的用户使用。耶!
“那万一李四忘了用ConnectionMan2ConnectionPool转换怎么办?”
呵呵,别忘了,编译器不是吃素的。用户期待ConnectionPool, 而李四只有ConnectionMan, 他想不转换也不行啊!
什么?今天的家庭作业?
啊,让你们家长写表扬信给ajoo老师。:)
玩笑。如果那位能发现进一步refactor的地方,欢迎指出!
- 从一个ConnectionPool的实现看design pattern的运用 (四)
- 从一个ConnectionPool的实现看design pattern的运用 (一)
- 从一个ConnectionPool的实现看design pattern的运用 (二)
- 从一个ConnectionPool的实现看design pattern的运用 (三)
- 从一个ConnectionPool的实现看design pattern的运用 (五)
- 从一个ConnectionPool的实现看design pattern的运用 (source code for Java 1.1)
- 从一个ConnectionPool的实现看design pattern的运用 (六)
- 从一个ConnectionPool的实现看design pattern的运用 (续六)
- 从一个ConnectionPool的实现看design pattern的运用 (七)
- 【Design Pattern】Builder模式的一种实现
- 从FrameWork的角度看Creational Pattern
- ConnectionPool的概念
- java开发中ConnectionPool 连接不同数据库的实现
- 《Design Pattern》下的思考
- design pattern方面的好书
- 我的“一句话Design Pattern”
- 从一个实例看jaxb的强大
- 从一个范例看XML的应用
- 一个短小精悍使用的对象化QQ菜单
- 从C++的Return Value Optimization (RVO)到C#的value type
- 从一个ConnectionPool的实现看design pattern的运用 (一)
- 从一个ConnectionPool的实现看design pattern的运用 (二)
- 从一个ConnectionPool的实现看design pattern的运用 (三)
- 从一个ConnectionPool的实现看design pattern的运用 (四)
- 从一个ConnectionPool的实现看design pattern的运用 (五)
- 从一个ConnectionPool的实现看design pattern的运用 (source code for Java 1.1)
- 从一个ConnectionPool的实现看design pattern的运用 (六)
- 从一个ConnectionPool的实现看design pattern的运用 (续六)
- OO随笔(关于connection pool系列的补充,兼答bonmot)
- 从一个ConnectionPool的实现看design pattern的运用 (七)
- refactor遇到死胡同。
- 面向对象语言概论 (一)