2010-09-04 3 views
6

¿Por qué no podemos los diferentes pasos de compilación dentro del propio constructor? si los pasos de compilación toman argumentos, ¿por qué no pueden proporcionarse como argumentos al constructor y utilizarse dentro del constructor para crear el objeto?¿Por qué el patrón de generador es mejor que un constructor con argumentos en el objeto de la clase que se está creando?

AFAIK, en patrón de generador, el cliente que objeto específico crear; entonces, ¿cuál es la ventaja de usar un generador en lugar de un Constructor con argumentos en el objeto de la Clase que se está creando?

Respuesta

5

¡Oh! Lo entiendo. Estaba viendo el ejemplo de Wikipedia y me di cuenta por qué Builder es útil. Es útil cuando el cliente no sabe qué argumentos pasar al constructor, ya que es muy complicado y, por lo tanto, no puede llamar al constructor directamente y obtener el objeto. En consecuencia, pide ayuda a los Constructores de Concreto que saben qué argumentos deben pasar a los constructores y, por lo tanto, obtienen el objeto creado.

Básicamente, si el cliente es el que principalmente va a pasar los argumentos al constructor de la clase cuyo objeto se crea, entonces Builder no es tan útil. Quizás sea mejor usar el prototipo. Por otro lado, si hay un pequeño conjunto finito de objetos específicos que se pueden crear a partir de la clase pasando argumentos al constructor (o instaladores de llamadas) a esa clase y si son los que se utilizan con frecuencia, entonces es mejor para encapsular este argumento pasando thingy en la clase Builder y usarlos para crear los objetos para usted.

Cuestiones relacionadas