假设我在一个论坛上工作,当然有 用户,以及添加评论、开放主题等的选项。
现在我需要一些功能, 例如:登录/注销;添加/编辑/删除评论;私有(private)消息..好的,你明白了。
因此,如果我使用 oop 来执行此操作,对于所有这些选项,仅使用一个巨大的类将非常笨拙,而且我认为效率较低, 所以最好为上面的每一个都上一个类。但问题是,如果我这样做,我需要在每个类中连接到数据库, 同时使用多个连接到同一个数据库将是一种资源浪费。那么,这个问题的最佳解决方案是什么? :-)
最佳答案
在 OOP 中,您只需创建对象。他们做他们应该做的事。
当我写作时,您只需创建对象,我的意思是字面上的意思。到目前为止还没有数据库,你还不关心这些对象是如何存储的。
编写您的单元测试,让对象按其应有的方式工作。
然后开始将这些对象放在一起。它们仍然不需要存储。只需将它们放在一起,例如:
$user = $session->getUser();
$user->login(username, password);
等等。您的应用程序应该不需要关心数据库。
然后,当您完成应用程序时,在每个操作中实例化对象的位置旁边,您还实例化了一个能够从数据存储中获取对象的 DataMapper
。
User <--> UserMapper <--> Datastore
如您所见,User
对象对 Datastore
一无所知,甚至对 UserMapper
也一无所知。 UserMapper
知道什么是 User
,但正如上面所写,这是稍后出现的,所以首先让你的重要对象运行,为它们编写单元测试,然后是集成测试然后当你完成后,开始考虑数据库 - 无论那时它会是什么。
关于php - 使用一些使用数据库连接的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11273157/