我被交给使用的代码库具有一个继承自MDB2的数据库类。这构成了使用中的 MVC 框架(自定义构建的事务)的基础,而模型又继承自 db。
我相信你们中的一些人已经注意到,这会导致一个相当大的问题。每次实例化模型时,都会创建一个新的数据库连接。这显然是相当浪费的。这也意味着我无法按预期使用事务,因为如果事务在模型的一个实例中开始,则在提交发生之前,其他实例将看不到它的影响。
我的计划是更改 db 类以封装 MDB2 而不是从其继承,然后让它通过其单例功能维护 MDB2 的单个实例。
然而,MDB2 是一个包含很多方法的大型库,代码库中的很多东西都依赖于能够访问 MDB2 方法。
有没有一种方法可以封装 MDB2 类并将调用传递给它,而无需修改更高层,并且不必为 MDB2 中的每个方法编写包装器方法?