Должен ли я создавать новые объекты для всех различных взаимодействий? - PullRequest
1 голос
/ 22 июня 2009

Мне трудно понять эти понятия об объектах и ​​о том, как они должны взаимодействовать / существовать.

Должны ли я, например, иметь разные объекты (ну, может, я имею в виду соединения с базой данных здесь, если есть какая-либо разница) для взаимодействий с моей базой данных, когда они не связаны?

Допустим, у меня есть один объект, который 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 ]

1 голос
/ 22 июня 2009

иногда книги лучше чем в интернете Я нашел эту книгу действительно полезной. примеры ориентированы на Java, но могут применяться к любому языку

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

1 голос
/ 26 июня 2009

Вы, кажется, думаете на неправильном уровне абстракции. ООП позволяет вам думать о «пользователях» и «статьях» вместо «соединений с базой данных» и «страниц».

Я не уверен, что полностью понимаю проблему - думаю, ваш вопрос «какой объект должен отвечать за подключение к базе данных?». Создание соединения с базой данных необходимо выполнить только один раз. Это соединение затем может быть разделено между всеми объектами. Для совместного использования соединения вам необходимо создать класс, от которого могут наследоваться все другие классы, которые подключаются к базе данных, и переменную static в этом классе, чтобы обеспечить существование только одного объекта соединения.

В других языках static переменные обычно называют class переменными.

1 голос
/ 22 июня 2009

Мне кажется, что вам не хватает того, что объектно-ориентированное программирование не для того, чтобы заставить вас выполнять дополнительную работу, следуя его правилам, оно для того, чтобы облегчить вашу жизнь. Если это не делает вашу жизнь проще, вы делаете это неправильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...