2011-06-09 9 views
6

Acabo de reanudar el trabajo en un proyecto antiguo y he estado pensando en reescribir algunas partes del mismo.Tratando de seguir MVC - Buscando consejo sobre un buen diseño

Mi pregunta se refiere a cómo estructurar mi programa. He estado tratando de seguir el paradigma de MVC. Empezaré explicando dónde están las cosas: el programa manipula 4 tipos de imágenes: diagonales, oscuros, planos y luces. Tengo una clase llamada Image que puede representar todo esto. El Sesgo y la Oscuridad se restan de la Luz y luego la Luz se divide por el Campo Plano. Inicialmente, iba a usar 2 clases para esto, una llamada CalibrationImage y la otra simplemente Light. Pero la diferencia era solo de un método que sería la función divisora ​​que mencioné anteriormente. De lo contrario, son lo mismo. Así que decidí no tener dos clases para este propósito.

La segunda clase principal en el programa se refiere al manejo de objetos Image múltiples: esta clase se conoce como ImageStacker. A partir de ahora, tiene objetos Image en una matriz mutable. Puede realizar varias operaciones en esta matriz, como apilar todas las imágenes, calibrarlas, etc.

Esta clase también actúa como el origen de datos para el objeto NSTableView en la ventana principal. No estoy pensando que en lugar de tener una sola matriz mutable, debería tener 4 matrices, cada una de las cuales está designada para un tipo de imagen (como, una matriz para Luces, otra para Oscuros, etc.). Una vez que el programa comienza su trabajo real, Darks, Flat Fields y Bias frames. Luego calibrará cada objeto contenido en la matriz Lights y luego los apilará. Siento que esto proporciona al programa una progresión lógica. También es un poco fácil de visualizar.

¿Es este un buen programa de diseño? ¿Sigue a MVC? Como lo veo, mi vista es NSTableView, el controlador es NSApplication y el modelo es ImageStacker. Pero entonces, Image parece que no es parte del MVC pero no puedo ver cómo escribir el programa sin él.

Respuesta

1

Mis 2 centavos: MVC es un diseño de presentación. Normalmente escribiré mis aplicaciones MVC con capas de datos y negocios separadas, aparte de la parte de MVC. Está bien que Image no forme parte del patrón MVC, probablemente encajaría mejor en un grupo de clases que definiría como su capa empresarial. Hay muchos buenos libros, blogs y artículos que hablan sobre patrones de diseño de programación, por lo que no voy a reiterar lo que ya hicieron. Simplemente hacer esta pregunta es un buen comienzo. Sugeriría que sigas mirando el contenido que ya está disponible.

+0

¿Sería tan amable de indicarme un libro que considere que le da al sujeto un tratamiento adecuado? – saad

Cuestiones relacionadas