Cytat(Joachim Peters @ 1.08.2007, 22:19:30 )

Rozumiem, że chodzi o coś takiego?
<?php
class Foo {
private $db;
public function __construct($db) {
$this->db = $db;
}
public function a() {
$this->db->query('zapytanie');
}
}
$db = new DB();
$foo = new Foo($db);
?>
Ps Dziękuje @Ludvik za zainteresowanie!
Nie ma problemu

Dokładnie o to chodzi

Do tego możesz wymusić kontrolę typów, dzięki czemu zachowasz spójność obiektu. Zauważ, że przy testach jednostkowych klasy Foo likwidujesz skutki działania obiektu klasy DB. Po podstawieniu mocka test zostanie zaliczony, nawet gdy klasa DB nie przechodzi swoich testów. Singleton wymuszałby użycie konkretnej klasy, która niekoniecznie działa prawidłowo (o ile została już zaimplementowana).