🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.lenguajes.java
Article #402

Arquitectura de aplicaciones Swing

#402
From: Kazud
Date: Mon, 13 Aug 2007 20:22
41 lines
3144 bytes
Primero quería saludar al grupo, es mi primer mensaje :)

Y ahora al tema: repasando patrones de arquitectura, MVC y compañía,
empecé a hacer una aplicación de ejemplo en Swing para aplicar estos
patrones, pero me surgen una serie de dudas.

La aplicación es una tontería, pero quiero empezar por lo básico y
hacerla crecer un poco para contemplar los casos típicos de una
aplicación de gestión para el escritorio. Así que ahora mismo, lo
único que hace es listar libros (con un JFrame que tiene un área de
texto) y permitir añadir nuevos (un JDialog con los campos).

Con esto empecé separando la clases en dos capas: modelo (con la clase
"Libro") y vista-controlador (con las ventanas). Ahora bien, esto ya
me plantea una serie de dudas:

- En MVC, la vista guarda una referencia al modelo que va a mostrar.
Si la ventana lo que hace es mostrar todos los libros disponibles,
¿guarda un ArrayList de Libros? ¿Se debe crear una lista específica
para los libros? ¿Cómo encaja el patrón Observador/Observable con la
lista?

- La clase "Libro", en "principio", tiene toda la pinta de ser un
JavaBean. Sin embargo, los datos tienen que persistir, por lo que
¿dónde se meten los típicos métodos save/update/delete/find/etc.? ¿En
una clase separada como LibrosDAO? ¿Entonces la ventana, para recoger
los libros disponibles que tiene que mostrar, accede a LibrosDAO? ¿O
lo hace a través de Libros y éste es el único que usa LibrosDAO (lo
que implica volver a definir los métodos de persistencia para
encapsular a los métodos de la clase DAO)?

- Cuando se crea un nuevo libro, el usuario cubre los campos y le da a
un botón "Guardar": ¿Es la ventana la que crea el Libro, la rellena
con los datos de los JTextField y llama a su método "guardar"? ¿O es
el controlador el que recoge los datos introducidos por el usuario,
crea el Libro y llama a su guardar?

Por ahora esas son mis dudas.

Un saludo.
Technical Details
Message-ID: <1187036577.197249.6320@q75g2000hsh.googlegroups.com>
Path: arc1-ca.pugleaf.net!g2news2.google.com!postnews.google.com!q75g2000hsh.googlegroups.com!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Thread: 1116f3,4d1a0adf63fd3dcc,start
X-Google-Attributes: gid1116f3,public,usenet
X-Google-Language: SPANISH,ASCII
Path: arc1-ca.pugleaf.net!g2news2.google.com!postnews.google.com!q75g2000hsh.googlegroups.com!not-for-mail
From:  Kazud <alkazud@gmail.com>
Newsgroups: es.comp.lenguajes.java
Subject: Arquitectura de aplicaciones Swing
Date: Mon, 13 Aug 2007 13:22:57 -0700
Organization: http://groups.google.com
Lines: 42
Message-ID: <1187036577.197249.6320@q75g2000hsh.googlegroups.com>
NNTP-Posting-Host: 81.35.90.14
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-Trace: posting.google.com 1187036577 11281 127.0.0.1 (13 Aug 2007 20:22:57 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Mon, 13 Aug 2007 20:22:57 +0000 (UTC)
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6,gzip(gfe),gzip(gfe)
Complaints-To: groups-abuse@google.com
Injection-Info: q75g2000hsh.googlegroups.com; posting-host=81.35.90.14;
   posting-account=ps2QrAMAAAA6_jCuRt2JEIpn5Otqf_w0