Arnaud Labourel
Penser objet : décomposer le programme en objets
Quels sont les objets nécessaires à la résolution du problème ?
\(\Rightarrow\) décomposition du problème en objets
À quels modèles des objets correspondent-il ?
\(\Rightarrow\) Quelles sont les classes ?
Quels sont les fonctionnalités/opérations dont on doit/veut pouvoir disposer sur ces objets ?
\(\Rightarrow\) Quelles sont les méthodes des classes ?
Quelle est la structure des données de l’objet ?
\(\Rightarrow\) Quelles sont les attributs des classes ?
un catalogue regroupe des articles, il permet de trouver un article à partir de sa référence.
un article est caractérisé par un prix et une référence que l’on peut obtenir. On veux aussi pouvoir déterminer si un article est plus cher qu’un autre
une commande est créée pour un client et un catalogue donnés, on peut ajouter des articles à une commande, accéder à la liste des articles commandés ainsi que prix total des articles et le montant des frais de port de la commande.
un client peut créer une commande pour un catalogue et commander dans cette commande des articles à partir de leur référence.
un catalogue regroupe des articles, il permet de trouver un article à partir de sa référence.
un article est caractérisé par un prix et une référence que l’on peut obtenir. On veux aussi pouvoir déterminer si un article est plus cher qu’un autre
une commande est créée pour un client et un catalogue donnés, on peut ajouter des articles à une commande, accéder à la liste des articles commandés ainsi que prix total des articles et le montant des frais de port de la commande.
un client peut créer une commande pour un catalogue et commander dans cette commande des articles à partir de leur référence.
un catalogue regroupe des articles, il permet de trouver un article à partir de sa référence.
un article est caractérisé par un prix et une référence que l’on peut obtenir. On veut aussi pouvoir déterminer si un article est plus cher qu’un autre.
une commande est créée pour un client et un catalogue donnés, on peut ajouter des articles à une commande, accéder à la liste des articles commandés ainsi que le prix total des articles et le montant des frais de port de la commande.
un client peut créer une commande pour un catalogue et commander dans cette commande des articles à partir de leur référence.
Catalog
un catalogue regroupe des articles, il permet de trouver un article à partir de sa référence.
get_item(self, reference)
Item
un article est caractérisé par un prix et une référence que l’on peut obtenir. On veut aussi pouvoir déterminer si un article est plus cher qu’un autre.
get_price(self)
get_reference(self)
is_more_expensive_than(self, other_item)
Order
une commande est créée pour un client et un catalogue donnés, on peut ajouter des articles à une commande, accéder à la liste des articles commandés ainsi que le prix total des articles et le montant des frais de port de la commande.
__init__(self, client, catalog)
(constructeur)add_item(self, item)
get_all_items(self)
get_total_price_of_items(self)
get_shipping_cost(self)
get_client(self)
get_catalog(self)
Client
un client peut créer une commande pour un catalogue et commander dans cette commande des articles à partir de leur référence.
create_order(self, catalog)
order_item(self, order, reference)
Un objet :
Une classe (d’objet) définit des :
Une classe peut hériter d’une autre classe. Dans ce cas, cette classe appelée classe fille (subclass) hérite des méthodes de la classe dite mère (superclass).
Pour créer une classe fille, on utilise l’instruction class
, suivie comme d’habitude du nom que l’on veut attribuer à la nouvelle classe, et on place entre parenthèses le nom de la classe mère.
super
La fonction super()
permet d’accéder aux méthodes de la classe mère. Par exemple dans le code ci-dessous, cela nous permet d’accéder à la méthode __init__
de Point
dans ColoredPoint
: