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 ?
Cours Architecture
Modérateurs : graffion, jmdouin, agoncal, mlebihan
Re: Cours Architecture
Bonjour,
Nous avons quelques classes privées dans les TP de GLG203 essentiellement sous la forme de classes anonymes dans les IHM swing:
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 :
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 :
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) {
...
}
});
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 {
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();
Re: Cours Architecture
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.
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.
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité