У меня возникли проблемы с мышлением о хорошей структуре для создания моих классов и объектов. В приведенном ниже коде я использую интерфейс для определения методов класса, но также хочу передать соединение с базой данных с моим конструктором, чтобы класс имел это соединение для работы. Правильно ли это, когда я закодировал его ниже, что конструктор помещен в мой класс и методы в моем интерфейсе?
interface IDataItem
{
public function saveItem(Item $theItem);
}
class DataItem implements IDataItem{
public function __construct(Database $database)
{
$this->database = $database;
}
public function saveItem(Item $item)
{
//save the item
}
}
$db = new Database(); //from a database class
$dataItem = new DataItem($db);
$dataItem->saveItem($anItem);