PDO clase / código de conexión y diseño de clase

Estoy tratando de entender cómo usar PDO con una clase de "conexión".

class db { 

    private static $dbh; 

    private function __construct(){}
    private function __clone(){} 

    public static function connect() { 
        if(!self::$dbh){ 
            self::$dbh = new PDO("mysql:host=localhost;dbname=database", "user", "password");
            self::$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
        } 
        return self::$dbh; 
    } 

    final public static function __callStatic( $chrMethod, $arrArguments ) {   
        $dbh = self::connect(); 
        return call_user_func_array(array($dbh, $chrMethod), $arrArguments);  
    }
} 

He tomado lo anterior dehttp: //php.net/manual/en/book.pdo.ph, y modifiqué ligeramente las variables, pero me pregunto cómo puedo conectarme al objeto de conexión PDO dentro de esta clase de base de datos.

$dbh = new db; //intiate connection???

$stmt = $dbh->prepare("SELECT * FROM questions WHERE id = :id"); // or should I do db::prepare.. ???
$stmt->bindParam(':id', $_GET['testid'], PDO::PARAM_INT);

if ($stmt->execute()) {
    while ($row = $stmt->fetch()){
        print_r($row);
    }
}

¿Alguna idea por favor? Gracia

Respuestas a la pregunta(4)

Su respuesta a la pregunta