クラスとオブジェクトを構築するための適切な構造を考え出すのにいくつか問題があります。以下のコードでは、インターフェイスを使用してクラス メソッドを定義していますが、コンストラクターにデータベース接続を渡して、クラスがこの接続を使用できるようにしたいと考えています。以下にコーディングしたように、コンストラクターがクラス内に配置され、メソッドがインターフェイス内に配置されていることは正しいですか?
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);