Article View: es.comp.lenguajes.java
Article #402Arquitectura de aplicaciones Swing
From: Kazud
Date: Mon, 13 Aug 2007 20:22
Date: Mon, 13 Aug 2007 20:22
41 lines
3144 bytes
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-mailShow 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