我应该为所有不同的交互实例化新对象吗?

时间:2009-06-21 22:59:55

标签: php oop

我很难掌握这些对象的概念以及它们应该如何相互作用/存在。

我是否应该有不同的对象(好吧,也许我的意思是,如果存在任何差异,这里是指与数据库的连接),只要它们不相关,我与数据库的交互?

假设我有一个对象,index.php用于获取和显示数据库中的内容 用户用来添加/删除数据库中的东西的另一个对象。我们可以说对象都是类dbinteract,它包含了搞乱数据库的所有函数。

或者我应该将类划分为:dbconnection,dbdisplay,dbinsertion,dbmodification,我将dbconnection发送到其他对象?

我觉得我错过了一些非常明显的东西,并且试图向前推进而不知道在思考过程中我哪里出错了,我想我在这里寻找一个问题以及一个答案。

的index.php

$connection = new dbconnection();
$displayer = new dbdisplay();

$activeconnection = $connection->connecttodatabase();
$pagetodisplay = $connection->getcontentofpagetodisplay($query);
$displayer->displayPage($activeconnection, $pagetodisplay);

userinsert.php

$inserter = new dbinsert();
$usersdbconnection = new dbconnection();

$inserter->newPost($userdbconnection, $usercredentials, $posttextfromuser);
$usersdbconnection->closedatabaseconnection();

3 个答案:

答案 0 :(得分:1)

对我来说,你似乎缺少的是面向对象的编程不是为了让你按照规则做额外的工作,而是让你的生活更轻松。如果它不能让你的生活变得更轻松,那你就错了。

答案 1 :(得分:1)

有时书籍比上网更好 我发现这本书真的很有用。 这些示例倾向于java,但可以应用于任何语言

http://oreilly.com/catalog/9780596008673/

答案 2 :(得分:1)

你似乎在错误的抽象层次上思考。 OOP允许您考虑“用户”和“文章”而不是“数据库连接”和“页面”。

我不确定我是否完全理解了这个问题 - 我认为你的问题是'哪个对象应该负责连接到数据库?'。创建与数据库的连接只需要执行一次。然后可以在所有对象之间共享此连接。要共享连接,您需要创建一个类,连接到数据库的所有其他类都可以继承该类,并且该类中的static变量可以确保只存在一个连接对象。

在其他语言中,static个变量通常称为class变量。