GatorV,
 
Ya tengo los 4 ficheros  
config_reader.php    
Código PHP:
Ver original<?php
class Config
{
    private $_config;
    public function __construct($sFile)
    {
            throw new Exception("Can't find file: $sFile");
        }
        
    }
    
    public function getConfig()
    {
        return $this->_config;
    }
}
?>
  
  db.php    
Código PHP:
Ver original<?php
class db {
    private $_username;
    private $_password;
    private $_host;
    private $_db;
    
    public function __construct(Config $config)
    {
        $config_data = $config->getConfig();
        $this->_username = $config_data['username'];
        $this->_password = $config_data['password'];
        $this->_host = $config_data['host'];
        $this->_db = $config_data['db'];
    }
}
?>
  
  registry.php
 
El código que publicó el compañero 
atrianaster 
y  
params.ini  
Código:
 username = "root"
password = "jupiter"
host = "localhost"
db = "codelab"
  Por último, el fichero donde los llamo (tuve que cambiar tu ejemplo de función "
set" por la que definió atrianaster "
add", imagino que es lo mismo.    
Código PHP:
Ver original<?php
require('config_reader.php');
require('db.php');
require('registry.php');
 
$config = new Config('params.ini');
$db = new db($config);
Registry::add('db', $db);
 
?>
  
¿Ahora cómo juego con todo esto?... entiendo que haciéndolo de esta forma evitamos el usar el patrón singleton, esto nos proporciona la ventaja de que ahora sea posible conectarse a diferentes bases de datos desde el mismo script.
Ej. la base de datos master donde solo se escribiría, y la slave donde solo se harían lecturas, correcto? 
Dentro de la clase db (fichero 
db.php) debería crear un nuevo método que fuese la conexión con PDO, así verdad?    
Código PHP:
Ver originalpublic function Conectar(){
        try {
            $dbh = new PDO("mysql:host=$this->_host;dbname=$this->_db", $this->_username, $this->_password);
            /*** echo a message saying we have connected ***/
            echo 'Connected to database';
        }
        catch(PDOException $e){
            echo $e->getMessage();
        }
    }
  
Y en el ejemplo/llamada hacer:    
Código PHP:
Ver original<?php
require('config_reader.php');
require('db.php');
require('registry.php');
 
$config = new Config('params.ini');
$db = new db($config);
Registry::add('db', $db);
$db->Conectar();
?>
  
De forma que a partir de ese momento, seguiría utilizando la clase 
db normalmente y solo utilizaría el Registry::add(....) para hacer el paso previo a la conexión, todo bien hasta aquí? :S Debo de volverlo a utilizar en alguna ocasión más por si quiero hacer una consulta a la otra base de datos? 
Gracias de antemano!