Classe de membros estáticos versus interface c-like normal

Olá.
Depois de leraqui sobre o padrão do localizador de serviço, ele me fez pensar se uma classe com apenas membros estáticos realmente é o caminho a seguir, ou se uma interace tipo c normal não seria mais apropriada. Eu vejo pessoas jogando ao redor doclass sempre que eles nem precisam dela.
Exemplo com a classe de membros estáticos extraída da página vinculada:

class Locator
{
public:
    static IAudio* GetAudio() { return service_; }

    static void Register(IAudio* service)
    {
        service_ = service;
    }

private:
    static IAudio* service_;
};

Aqui está uma maneira de fazer isso também:

// in .h
namespace Locator{
    IAudio* GetAudio();
    void Register(IAudio* service);
}

// in .cpp
namespace Locator{
    namespace {
        IAudio* service_;
    }

    IAudio* GetAudio() {
        return service_;
    }
    void Register(IAudio* service) {
        service_ = service;
    }
}

Ambos os exemplos podem ser chamados exatamente da mesma maneira comLocator::GetAudio() eLocator::Register(...). Um dos itens acima é superior ao outro? Eles são os mesmos? Talvez haja maneiras melhores de conseguir isso? Ou é apenas sobre preferências pessoais? Obrigado por qualquer ajuda. :)

questionAnswers(2)

yourAnswerToTheQuestion