he buscado una buena ejemplo de un patrón Constructor (en C#), pero no puede encontrar uno, ya sea porque no entiendo el patrón Builder o que estoy tratando de hacer algo que fuera nunca intencionado Por ejemplo, si tengo un automóvil abstracto y métodos abstractos para crear partes de automóviles, debería poder enviar mis 30 opciones al Director, hacer que construya las piezas que necesito y luego construir mi automóvil. Sin importar qué auto, camión, semi, etc. produzca, debería ser capaz de "conducirlo" exactamente de la misma manera.Diseño Patrón: Constructor
El primer problema es la mayoría de los ejemplos de valores de propiedades de código duro en las partes concretas, que realmente creo que deberían provenir de una base de datos. Pensé que la idea era enviar mis elecciones al Director (desde una fuente de datos) y hacer que el constructor creara un producto personalizado basado en mis datos.
El segundo problema es que quiero que los métodos del constructor realmente creen las piezas y luego las asignen al producto, no cadenas de paso sino partes del producto real fuertemente tipadas.
Por ejemplo, quiero crear un formulario sobre la marcha teniendo un Builder fabricando campos de formulario para mí, incluyendo una etiqueta, una sección de entrada, validación, etc. De esta forma puedo leer el objeto de mi ORM, verificar fuera de los metadatos del objeto, páselo a mi Creador y agregue el resultado de control de usuario recién creado a mi formulario web.
Sin embargo, todos los ejemplos de Builder que encuentro solo tienen datos codificados en lugar de pasar opciones del código principal al generador y expulsar un producto personalizado. Todo parece ser una gran declaración de caso estática. Por ejemplo, si tengo tres parámetros con 10 opciones cada uno, no quiero construir 30 métodos concretos de Builder, solo quiero crear lo suficiente para fabricar las propiedades que requiere mi producto, que pueden ser solo tres.
Estoy tentado de que el Director exista solo en el código principal. Debería haber una manera de determinar automáticamente qué método de compilación concreta llamar similar al polimorfismo y las sobrecargas de métodos (aunque ese es un muy mal ejemplo) en lugar de usar una declaración de caso dentro del patrón. (Cada vez que necesito agregar un nuevo tipo de producto, tendré que modificar el Director existente, lo cual es malo).
tal vez, lo que falta en el patrón del generador, es que los objetos no se destruyen al final, por lo que sugiero que agregue esto más adelante si no ha entendido el patrón ... – Tobias
No es realmente lo que quiere, pero revise estos artículos:
[la descripción del patrón] (http://sourcemaking.com/design_patterns/builder)
[muestra de implementación C#] (http://sourcemaking.com/design_patterns/builder/c%2523)
Espero que esto ayuda – 0x49D1