Un clase debería resolver un único problema, que intentas modelar en la clase Query ?, en AR los modelos extienden de una clase base(por lo general se llama Record) que les da la funcionalidad básica(load, hydrate, refresh, save, etc...).
Sobre las conexiones, PHP cuando termina de ejecutarse el script cierra automáticamente todas las conexiones, en lo que deberías preocuparte es en no abrirlas innecesariamente, para esto te sugiero una propiedad estática en la clase base.
En relación al código que muestras, estas hardcodeando las dependencias, imagínate que quieres utilizar otra conexión para la clase Query, si es requerida la dependencia para el funcionamiento de la clase deberías inyectarla vía constructor.
Código PHP:
Ver originalclass Query
{
...
public function __construct(Connection $conn)
{
$this->conn = $conn;
}
...
}
Y bueno sobre Singleton..., les sugiero que hagan una búsqueda en el foro o google, es algo que deberían evitar
http://blogs.msdn.com/b/scottdensmor...25/140827.aspx