Un problema en grandes proyectos de C++ puede ser tiempos de compilación. Hay una clase alta en su árbol de dependencias en la que tendría que trabajar, pero generalmente evita hacerlo porque cada compilación lleva mucho tiempo. No necesariamente quiere cambiar su interfaz pública, pero tal vez quiera cambiar sus miembros privados (agregue una variable de caché, extraiga un método privado, ...). El problema al que se enfrenta es que en C++, incluso los miembros privados se declaran en el archivo de encabezado público, por lo que su sistema de compilación necesita volver a compilar todo.¿Qué patrones usa para desacoplar interfaces e implementación en C++?
¿Qué haces en esta situación?
He esbozado dos soluciones que conozco, pero ambas tienen sus desventajas, y tal vez hay una mejor en la que todavía no he pensado.
Otra ventaja es que puede simular fácilmente la clase para la prueba unitaria si tiene una interfaz –