0

我正在玩 OOP 编程,并且遇到了我可以使用建议的障碍。

我有嵌套类的情况。我有一个“公司”类,其中包含一个名为 people 的数组。该数组包含“Person”类的许多实例。

“公司”和“个人”的数据都存储在数据库中,相关类在需要时从该数据库中检索信息。

我的问题很简单:“我什么时候连接到数据库?” 我是否:- a) 首先在我的 PHP 页面中连接,然后将连接传递给“公司”实例以供其使用。b) 将用户名、密码等直接放入“公司”类并在那里连接。

我原以为后者会创建到数据库的多个连接——每个“公司”实例一个——所以答案可能是“A”。但是,如果我要将课程传给另一个开发人员(这只是一个学习练习,所以我不打算这样做),他将不得不自己连接到数据库,并且不允许我的课程为他做.

无论哪种情况,连接会自动传递给“Person”类的每个实例,还是每次创建新实例时都必须传递连接?

我对此进行了一些研究,我认为答案是“A”(连接到我的 PHP 页面中的数据库,并将连接传递给 Company 类的每个实例),但只是认为我应该在得到之前仔细检查太远。

感谢您提供的任何建议。

4

2 回答 2

1

您的解决方案 A)对我来说听起来很熟悉。这样,您只需将数据库连接传递给对象或维护一个全局注册表以将连接对象(例如 PDO)存储到其中。

于 2012-06-13T16:37:49.870 回答
0

我认为你在正确的轨道上。

您所描述的称为依赖注入,使用它通常是一个好主意。

当您处理更复杂的项目时,完全抽象数据检索可能是一个好主意。创建一个界面,即“PersonFinder”或“CompanyFinder”,它只处理其相关记录的查找和检索。该接口的具体实现可能包括数据库查找、CSV 文件查找,甚至是某种基于 Web 的服务查找。创建时将您的 Finder 传递给您的 Company 或 Person 对象。

这样,您可以轻松更改查找记录的方式,而无需更改处理它们的代码。

于 2012-06-13T16:38:05.647 回答