Bonjour à tous,
n'ayant pas trouver de réponse sur googleuh je pose la question ici.
Je suis actuellement en train de lire le bouquin "Programmation Orientée objet" de Hugues Bersini. Et là on me parle de relation entre deux objets dîtes d'association et de dépendance:
J'attend juste qu'on me dise si ce que je pense est juste ou faux.
Donc si j'ai bien compris:
-Une relation d'association c'est (On va nommer nos deux objets "Bidule" et "Machin"):
Un objet qui instancie un autre objet en tant qu'un de ses propres attribut comme ce qui suit?
class Machin:
def __init__(self):
pass
class Bidule:
def __init__(self):
self.attribut = Machin()
MonInstance = Bidule()
-Et enfin une relation dîtes de dépendance, c'est lorsque qu'un objet instancie un autre objet par le biais d'une méthode comme ce qui suit?
class Machin:
def __init__(self):
pass
class Bidule:
def __init__(self):
pass
def ma_fonction(self):
self.attribut = Machin()
MonInstance = Bidule()
La seule différence entre entre ces deux méthodes, c'est qu'à la première, l'instance de Machin arrive avec l'instanciation de Bidule et disparaît avec celle-ci. et à la deuxième, une nouvelle instance de Machin sera crée à chaque appel de la méthode "ma_fonction"?
J'ai bon ou je suis complètement à côté de la plaque?
Edit:
Bon j'ai l'impression que je me suis planté et que ça concerne plus les moyens de communications entre deux objets(Ils auraient pu mettre le mot "relation" en gras et en majuscule j'y aurai p'tet prêté attention):
Donc normalement en vrai, une relation d'association entre deux objets ça ressemble plus à ça:
class Machin:
def __init__(self):
pass
class Bidule:
def __init__(self, valeur):
self.attribut = valeur
MonInstance = Bidule(Machin())
Et une relation de type "dépendance" ressemble plus à ça?
class Machin:
def __init__(self):
pass
class Bidule:
def __init__(self):
pass
def ma_fonction(self, valeur):
pass
InstanceDeBidule = Bidule()
InstanceDeMachin_1 = Machin()
InstanceDeBidule.ma_fonction(InstanceDeMachin_1)
InstanceDeMachin_2 = Machin()
InstanceDeBidule.ma_fonction(InstanceDeMachin_2)
InstanceDeMachin_etc = Machin()
InstanceDeBidule.ma_fonction(InstanceDeMachin_etc)
Bon je crois que je suis dans le droit chemin là.