J'ai par exemple un class Doctor
qui veut utiliser les services d'un class Postman
.
A quoi ressemble-t-il en termes de code?
public class Doctor
{
...
void doCheckup(Patient);
void sendMail(){ // want to use services of a Postman here }
}
public class Postman
{
void sendMail(...){ ... }
}
Je pourrais définir Doctor::sendMail()
comme
void sendMail()
{
Postman A = new Postman();
A.sendMail(...);
}
Est-ce exact?
Si tel est le cas, pourquoi un "docteur" devrait-il créer un "facteur"? Cela semble très loin des scénarios de la vie réelle. Est-ce ainsi que les messages sont partagés entre objets?
Réponses:
1 pour la réponse № 1Si vous essayez de créer un "modèle réel", vous obtiendrez un objet global PostOffice, contenant de nombreux facteurs.
Le docteur peut faire partie d’un bureau de médecin ou d’un hôpital
Le docteur aurait une variable membre pointant vers HIS Postman
Doctor.Postman = aPostmanObject;
Il laisserait ensuite le facteur faire le travail.
Doctor.Postman.SendMail();
En supposant que vous ayez créé "SendMail" comme méthode publique de Postman (ce qui serait le cas car il le fait en tant que service public)
2 pour la réponse № 2
Une façon plus idiomatique serait d’avoir quelque chose comme:
void sendMail(Postman postman) {
postman.sendMail(...);
Ne créez pas l’autre objet à l’intérieur du premier.
Sur un sidenote, Doctor::sendMail
est la syntaxe C ++. En Java, il n'y a pas ::