New*_*eer 1 java design-patterns connection-pooling
当有人要求你在Java面试中为连接池编写(做/描绘)设计时,你通常会写什么.
您是否为连接池编写代码或者是否描述了类图.有人可以解释一下连接池的设计.
对象池模式(和连接池是它的一个特例)在Mark Grand的'Patterns in Java中有很大的描述.卷.1.
这是一个基本的类图(来自谷歌图片):
alt text http://img13.imageshack.us/img13/8448/poolz.png
主要思想:Client不应该Reusable自己创造对象.而不是他应该使用ReusablePool.要得到Reusable他应该打电话的对象acquireReusable.当他不再需要Reusable物体时,他应该通过呼叫把它放回去releaseReusable.
ReusablePool包含Reusable对象列表.当Client要求时Reusable,池寻找现有的免费Reusable.如果Reusable获取了所有对象,那么如果列表大小较小,则再maxSize ReusablePool创建一个Reusable对象.当列表大小等于maxSize池时不会创建新的Reusable.而不是等到其他客户给他回任何Reusable对象.
从这个描述中你可以得出2个结论:
Reusable对象不应该有一个状态(或者它们的状态应该在releaseReusable方法中被"清除" )
ReusablePool 通常是多线程应用程序的一部分,并且所有方法中的所有同步内容都应该以适当的方式实现(并且这不是一件容易的事).
| 归档时间: |
|
| 查看次数: |
1314 次 |
| 最近记录: |