¿De qué sirve hacer que el constructor sea privado en una clase?

¿Por qué deberíamos hacer que el constructor sea privado en clase? Como siempre necesitamos que el constructor sea público.

Respuestas:23 Respuestas 23
Tiempo:hace 12 años, 8 meses
Última modificación:hace 1 año, 3 meses

Solución

Algunas razones por las que puede necesitar un constructor privado:

  1. Solo se puede acceder al constructor desde el método de fábrica estático dentro de la propia clase. Singleton también puede pertenecer a esta categoría.
  2. Una clase de utilidad, que sólo contiene métodos estáticos.

Otras respuestas

Dejar una «puerta trasera» que permita a otra clase/función amiga construir un objeto de una manera prohibida para el usuario. Un ejemplo que viene a la mente sería un contenedor que construye un iterador (C++):

Iterator Container::begin() { return Iterator(this->beginPtr_); }
// Iterator(pointer_type p) constructor is private,
//     and Container is a friend of Iterator.

Deja un comentario