Ahora lo que falta es hacer las clases Persona y ListaPersonas reusables. Lo único realmente específo de éstas es el nombre de la tabla y el mapeo para llenar las propiedades. Y así como tienes el método loadAll(), clases descendientes puedes declarar sus propios métodos para incluir criterios de búsqueda específicos, por ejemplo
Código PHP:
$personas->loadByNombre('%perez%');
$facturas->loadByCliente($clienteId);
Si te interesa este tema puedes encontrar información buscando cosas como Data Access Objects, Value Objects, Business Objects, etc. en PHP.
// Saludos