Cours Architecture

Architectures Logicielles Java(2)

Modérateurs : graffion, jmdouin, agoncal, mlebihan

ziguigui
Messages : 3
Inscription : 03 oct. 2013 14:04

Cours Architecture

Message par ziguigui » 22 mai 2015 11:53

Bonjour monsieur Graffion,

Je relis le cours sur "Architecture" mais je ne comprends pas le slide de la page 9 :

Concept : package et visibilité
Chaque package se compose :
• d’une interface = ensemble des classes publiques
• d’une implémentation : classes privées

Dans nos TPs de GLG203, nos packages ne respectent pas cela.
Alors pourquoi ce slide ?
J'ai râté quelque chose ?

graffion
Messages : 625
Inscription : 21 juin 2005 14:05

Re: Cours Architecture

Message par graffion » 29 mai 2015 12:03

Bonjour,

Nous avons quelques classes privées dans les TP de GLG203 essentiellement sous la forme de classes anonymes dans les IHM swing:

Code : Tout sélectionner

        // Menu File
        menuFile.setText("File");

        menuItemExit.setText("Exit");
        menuItemExit.addActionListener(new ActionListener() {
            public void actionPerformed(final ActionEvent evt) {
                ...
            }
        });
Voir un exemple de classe privée (Inner class) dans la doc de sun : https://docs.oracle.com/javase/tutorial ... asses.html.

Il existe seulement 2 classes non public (non anonymes) dans les TP GLG203 :

Code : Tout sélectionner

$ fgrep -R " class " src/com/yaps/petstore/ | fgrep -v public | grep -v " *\* "
src/com/yaps/petstore/common/dto/AddressDTO.java:final class AddressDTO implements DataTransfertObject {
src/com/yaps/petstore/server/service/creditcard/HTTPSender.java:final class HTTPSender {
La classe AddressDTO n'est donc pas déclarée public (seule une inner class peut être déclarée private).
En conséquence cette classe ne peut être utilisée que dans les classes définies dans le même package (com.yaps.petstore.common.dto en l'occurrence) ... et c'est bien le cas :

Code : Tout sélectionner

$ fgrep -R "new AddressDTO" src/com/yaps/petstore
src/com/yaps/petstore/common/dto/CustomerDTO.java:    private final AddressDTO _address = new AddressDTO();
src/com/yaps/petstore/common/dto/OrderDTO.java:    private final AddressDTO _address = new AddressDTO();

ziguigui
Messages : 3
Inscription : 03 oct. 2013 14:04

Re: Cours Architecture

Message par ziguigui » 30 mai 2015 9:06

Oui, d'accord.
Merci.

En fait, le principe présenté dans cette page 9 est un principe général recommandé mais qu'on n'a pas forcément appliqué dans les TPs, c'est tout.

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité