我已经交给的代码库使用的功能是一个从MDB2继承的数据库类。这构成了使用MVC框架(一个定制的事务)的基础,而模型又从db继承。修改一个类来封装而不是继承
正如我确信你们中的一些人已经注意到,这导致了一个相当大的问题。每次您实例化一个模型时,结果都会创建一个新的数据库连接。这显然很浪费。这也意味着我无法按预期使用事务,因为如果一个事务在模型的一个实例中启动,其效果对其他实例是不可见的,直到发生提交。
我的计划是更改db类来封装MDB2而不是继承它,然后让它通过其单例功能来维护单个MDB2实例。
但是,MDB2是一个有很多方法的大型库,代码库中的很多东西依赖于能够访问MDB2方法。
是否有方法来封装MDB2类并将调用传递给它,而无需修改更高层,也无需为MDB2中的每个方法编写包装器方法?
请问您可以展示一个示例模型类,以便我们可以看到它们的耦合程度? – Gordon 2010-11-22 10:35:26