IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

[Design Pattern]Respecter le modèle MVC


Sujet :

Java

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2004
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 306
    Points : 122
    Points
    122
    Par défaut [Design Pattern]Respecter le modèle MVC
    Bonjour,

    j'ai commencé à développer une application, mais celle-ci devient de plus en plus lourde à maintenir. Je me dis donc que je ne suis pas bien parti. Ainsi j'aimerais que mon application s'appuie sur le modèle mvc.
    Mon application gère mon compte bancaire. Les données sont stockées dans une base de données. Chaque transaction appartient à une categorie.
    J'utilise ainsi un JTabbedPane qui comporte un onglet "General" et un onglet par categorie. Chaque onglet (hormis l'onglet General) comporte un JTable.
    J'ai ainsi développé une classe TableModelDatabase qui est une sous-classe de AbstractTableModel et qui permet d'afficher dans un JTable des données provenant d'une base de données. Cela ne me semblait pas trop mal. Mais est-ce qu'avec cette classe, j'utilise vraiment le modèle mvc ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    import javax.swing.table.AbstractTableModel;
    import java.sql.SQLException;
    import java.lang.Integer;
    import java.math.BigDecimal;
     
    public class TableModelDatabase extends AbstractTableModel{
        private ConnectionJDBC connection;
        protected String[] columnNames;
        protected Object [][] dataTable;
     
        /** Creates a new instance of TableModelBDD */
        public TableModelDatabase(ConnectionJDBC conn,String query,String [] nameOfColumns) {
            columnNames=nameOfColumns;
            connection=conn;
     
            try {
                dataTable=connection.executeQuery(query);
            }
            catch (SQLException errSQL){
                System.out.println("Erreur de l'execution de la requete"+errSQL);
            }
        }
     
        public Object getValueAt(int row,int col){
            return dataTable[row][col];
        }
     
        public int getRowCount(){
            return dataTable.length;
        }
     
        public int getColumnCount(){
            return columnNames.length;
        }
     
        public boolean isCellEditable(int row,int col){
            return false;
        }
     
        public Class getColumnClass(int col){
            return getValueAt(0,col).getClass();
        }
     
        public String getColumnName(int col) {
                return columnNames[col];
        }
    }
    Mon souci premier est que toute mon interface est géré dans une seule et même classe, ma classe principale Main.java.
    Et là ça devient de plus en plus chaud de gérer tout ça. Il commence à y avoir beaucoup de choses.
    De plus dans, cette classe, j'effectue quelques requêtes à la base de données, pour récupérer les categories par exemple, puis je construis les JTable à partir de la classe TableModelDatabase.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    String query="Select transDate,transOrdre,transType,transOper,preleve,transMontt " +
                    "from transac where categoId="+categorie;
            String[] columnsData={"Date","Ordre","Type","Operation","Prelevé","Montant"};
            TableDataDatabase tableData=new TableDataDatabase(connectToCompteDB,query,columnsData);
     
            JScrollPane scrollPane=new JScrollPane(tableData);
     
            return scrollPane;
    Je me demande ainsi si je ne ferais pas mieux de laisser tomber ma classe TableModelDatabase, et de plutôt définir une classe DefineDataCompta qui effecuerait toutes les requêtes nécessaires, auraient pour membre la liste des categories par exemple.

    Qu'en pensez-vous ? Comment feriez-vous une telle application ?
    J'ai besoin de conseils, et je peine pas mal pour avancer....

    Merci d'avance.
    ++

  2. #2
    Membre habitué Avatar de agougeon
    Inscrit en
    Mai 2005
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 253
    Points : 147
    Points
    147
    Par défaut
    Salut, je suis pas super calé MVC, mais regarde peut etre par la :

    http://www.cyber06.com/article/mvc.php

    Il définie le model MVC de façon concrete sur un exemple Java... c'est du bon

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2004
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 306
    Points : 122
    Points
    122
    Par défaut
    Ok merci pour ce lien
    je m'en vais lire cet article de ce pas.
    D'autres avis ou conseils sur mon topic ? Sur mes classes ?

    merci

Discussions similaires

  1. Design pattern MVC et point d'entrée
    Par rgamor dans le forum Langage
    Réponses: 4
    Dernier message: 31/10/2012, 17h07
  2. Design Pattern MVC en Java
    Par JCD21 dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 02/03/2012, 13h10
  3. Réponses: 4
    Dernier message: 24/02/2009, 12h06
  4. Problème d'accessibilité avec le design patterns MVC
    Par radical_bombtracks dans le forum JSF
    Réponses: 5
    Dernier message: 24/07/2007, 13h15
  5. [Design Pattern] Modele MVC
    Par unNew dans le forum Général Java
    Réponses: 27
    Dernier message: 01/09/2005, 00h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo