2012-03-16 18 views
6

En una aplicación Swing, ¿cuál es la mejor forma de enviar datos (interactuar) entre dos vistas?Swing: ¿la mejor manera de interactuar entre vistas?

En cuanto a la sesión de acoplamiento en el Study Guide to the SCJP 6, que dice:

aplicaciones OO Todo no triviales son una mezcla de muchas clases y las interfaces trabajando juntos. Idealmente, todas las interacciones entre los objetos en un sistema OO deben utilizar las API, en otras palabras, los contratos, de respectivas clases de los objetos.

Si entendí esto correctamente, la mejor manera sería crear interfaces (contratos) para cada vista y, si es necesario, utilizar estos métodos de interfaz para recuperar datos. ¿Es esta una buena manera? Pasar un buen rato creando muchas interfaces para decir lo que está expuesto por una vista ¿está bien?

Otra forma en que pienso es tener clases para contener los datos (modelo) de una vista. En este caso, ¿es un buen enfoque acceder directamente a este modelo de clases?

Gracias de antemano.

Respuesta

6

La noción de separable model impregna Swing, como se indica en A Swing Architecture Overview. Típicamente, cada modelo está representado por una interfaz; algunos incluyen un AbstractXxxModel con algunas instalaciones básicas de fontanería; y muchos tienen un DefaultXxxModel con una implementación estándar.

+0

Parece que tiene todos los ejemplos para cada situación :-) –

3

Depende completamente de qué opción de diseño que están haciendo. Hay momentos en los que la opción de diseño que sugeriremos es mejor para el intercambio de datos de View, pero destruye el otro aspecto de su software. Por lo tanto, para equilibrarlo, debe elegir el diseño para que su aplicación funcione sin problemas.

yo personalmente prefiero patrón de diseño MVC. ¡Funciona para mí todo el tiempo! leer más acerca de MVC en:

Model View Controller

Buena suerte!

Nota: En MVC dos puntos de vista no interactúan entre sí, sino más bien que usar controladores para obtener los datos de modelo y básicamente cada vista tiene controladores con una referencia a su modelo de datos.

+0

1 para MVC; aquí hay un [ejemplo] relacionado (http://stackoverflow.com/a/3072979/230513). – trashgod

+0

@trashgod ¡gracias por el ejemplo! –

Cuestiones relacionadas