利用代码写一个对象池
时间: 2024-09-15 19:11:16 浏览: 33
对象池是一种设计模式,它用于重复利用已创建的对象,而不是每次都创建新的,特别是在频繁创建和销毁对象的场景下,比如数据库连接、网络请求等。下面是一个简单的Python实现对象池的例子:
```python
class ObjectPool:
def __init__(self, object_creator):
self.objects = []
self.object_creator = object_creator
def get_object(self):
if not self.objects:
return self.object_creator()
else:
return self.objects.pop()
def release_object(self, obj):
if obj is not None:
self.objects.append(obj)
# 使用示例
def create_database_connection():
# 这里假设create_database_connection()函数用于创建数据库连接
connection = connect_to_db()
return connection
pool = ObjectPool(create_database_connection)
# 获取连接
conn1 = pool.get_object()
# ...使用完后释放
pool.release_object(conn1)
# 再次获取连接
conn2 = pool.get_object()
```
在这个例子中,`ObjectPool`类负责维护一个对象列表,并提供`get_object`和`release_object`方法。当我们需要一个新的对象时,从对象池获取;当不再使用时,将其放回池中供后续复用。
阅读全文