2011-08-17 14 views
13

Estoy tratando de obtener MVC en mi proyecto de línea de comando.MVC en línea de comandos java

A partir de ahora (sin MVC, obviamente) que tengo:

  • MainClass (nombre falso, obviamente), un traste con el menú cuantas veces se crea un objeto del sistema
  • Menú (utilizado por el principal para presentar opciones)
  • Sistema, tiene un Modelo como atributo, creado con una entrada de archivo o teclado, utiliza los datos del Modelo para realizar una operación simple .calculado (valorA, valorB) donde se seleccionan valorA y valorB usando el menú de un areay de atributos del modelo
  • modelo (kin d de) es el contenedor de los datos que tengo.

¿Puede alguien por favor sugerirme una estructura adecuada para las clases?

Muchas gracias, Lucas

+0

¿Qué quieres decir? ¿Qué biblioteca de clase MVC? ¿Qué tipo de UI? – bmargulies

+0

Me refiero al patrón ModelViewController –

+0

@Luke, que es un patrón de diseño o un alias para una biblioteca existente. Si este último, ¿qué biblioteca? Si el primero, tu pregunta no tiene sentido. –

Respuesta

14

Estoy realmente sorprendido por las reacciones negativas a esta pregunta, ya que es una bastante interesante. Espero que sea porque la mayoría de las personas asume que MVC solo tiene algún significado en un entorno web, pero MVC también es completamente aplicable a un programa de CLI. Simplemente presenta un medio de visualización diferente. De hecho, lo consideraría el superlativo diseño MVC que fue capaz de conectar una CLI, GUI o "vista" web sin ningún cambio en el controlador y las piezas del modelo.

Todo lo que MVC dice es que, dada una aplicación, abstrae en la medida de lo posible la parte de la vista -la presentación de la aplicación, con qué los usuarios ven e interactúan- desde la lógica interna real de la aplicación. La forma en que lo hace es crear controladores que "peguen" la vista y los controles que haya en ella a la lógica del back-end. En pocas palabras, los controladores traducen la entrada del usuario en las llamadas a métodos y convierten los valores devueltos en elementos útiles para el usuario. La parte modelo del patrón es algo debatida. Algunos dicen que cada pieza de gráfico de objeto separado que se envía a la vista para mostrar es a "modelo". Otros sostienen que todo el gráfico de objetos con estado que vive en la parte posterior es el "modelo", y los controladores forman una especie de espejo que permite a la vista seleccionar, inspeccionar y modificar piezas específicas del modelo. La pregunta es si realmente hay muchos modelos que fluyen constantemente hacia adelante y hacia atrás o uno, un modelo grande que necesita ser expuesto de una manera que el usuario pueda comprender.

Para llegar a MVC en una CLI, o cualquier tipo de aplicación, tenga una parte del código claramente definida como vista/presentación. Nunca debería tener algo que se parezca a la lógica de negocios. Su (s) controlador (es) deben ser objetos que saben cómo responder a las entradas de los usuarios y pueden enviar cosas para su visualización, aunque sin suposiciones sobre cómo se mostrarán esas cosas o qué entradas de formulario tomarán exactamente. El modelo, de una manera u otra, es básicamente los datos reales o "cosas" que le interesan al usuario, y debe ser ajeno a la vista que lo muestra o al controlador que ... um ... controlarlo.

Cuestiones relacionadas