Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Principes Fondamentaux de la Composition | Section
Programmation Orientée Objet en Python

bookPrincipes Fondamentaux de la Composition

Glissez pour afficher le menu

La composition consiste à construire des objets complexes en combinant des composants plus simples et indépendants. Au lieu de s'appuyer sur l'héritage, qui crée des hiérarchies rigides, la composition permet aux classes de collaborer via des objets contenus. Cette approche rend les systèmes plus flexibles, modulaires et faciles à maintenir, car les composants peuvent être remplacés ou étendus sans perturber l'ensemble de la structure.

123456789101112131415161718192021222324252627282930313233
class Payment: def pay(self, amount): return f"Paid {amount}" class Inventory: def reserve(self, item): return f"{item} reserved" class Shipping: def ship(self, item): return f"{item} shipped" class Order: def __init__(self, item, price, payment, inventory, shipping): self.item = item self.price = price self.payment = payment self.inventory = inventory self.shipping = shipping def process(self): return " | ".join([ self.inventory.reserve(self.item), self.payment.pay(self.price), self.shipping.ship(self.item) ]) order = Order("Laptop", 1200, Payment(), Inventory(), Shipping()) print(order.process())
copy

Order n'implémente pas lui-même la logique de paiement, de gestion des stocks ou d'expédition. À la place, il possède des objets distincts (Payment, Inventory, Shipping) et les utilise pour accomplir son travail.

Chaque composant a une responsabilité unique, et Order se contente de les coordonner. Si vous souhaitez modifier le fonctionnement du paiement ou de l'expédition, il suffit de remplacer le composant sans modifier la classe Order.

Quelques écueils à éviter lors de l'utilisation de la composition : créer des objets dieux qui accumulent trop de composants et deviennent difficiles à gérer, divulguer les API des composants à travers la classe externe au lieu de maintenir une interface propre, et introduire des couplages cachés lorsque les composants dépendent excessivement des détails internes des autres.

Objets dieux
expand arrow

Un objet dieu essaie d’en faire trop. Il contient de nombreux composants et gère de nombreuses responsabilités, ce qui rend la classe difficile à comprendre, à tester et à maintenir.

Fuite des API des composants
expand arrow

Cela se produit lorsque la classe externe expose les méthodes ou attributs internes de ses composants. Au lieu de fournir sa propre interface claire, elle oblige les utilisateurs à interagir directement avec les objets internes.

Couplage caché
expand arrow

Les composants deviennent fortement liés par des détails internes. Modifier une partie casse de façon inattendue une autre, car ils dépendent de la structure interne de chacun au lieu de contrats clairs.

question mark

Quel est un risque courant lors de l’utilisation de la composition qui peut rendre la conception plus difficile à maintenir ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 16

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 1. Chapitre 16
some-alt