Conception orientée objet

Table of Contents

Code moodle : 6mjzby

1. Les mocks

Si une classe Obj est abstraite, random ou autre, on crée (dans tests), une classe ObjMock qui ne sert qu'au test. C'est un code factice pour du test

2. Les principes de conception

2.1. SOLID

C'est un ensemble de principes qui, si bien appliqué, améliore la qualité du code

  • OCP
  • Principe de substitution de Liskov
    • Si ça ressemble à un canard, qu'il fait coin coin mais qu'il a besoin de batteries, il y a un soucis.

3. Type générique

Une classe générique est une classe paramétrée par un type : On écrit public class Renter<T>

3.1. Wildcard

C'est Renter<?>. Renter<Car> n'est pas un sous type de Renter<Vehicle>, même si Car est un sous type de Vehicle

3.2. Méthode générique

Déclaration

public <T> T rentSomething(Renter<T> renter)

3.3. Contraindre/borner le type paramètre

public class Renter<T extends Rentable>

Si on veut contraindre sur plusieurs listes:

public class Renter<T extends A & B>

4. Design patterns

Il y a 3 familles de design :

  • De création d'objets
  • De comportement
  • De structure

4.1. Creational Patterns

C'est une abstraction d'un processus de création

4.1.1. Builder

Là pour éviter de devoir changer les propriétés et le constructeur d'une classe, la classe builder construit l'instance pour nous à l'aide de setters

Le builder est là pour :

  • Éviter les constructeurs à rallonge
  • Construire des objets avec beaucoup de paramètres optionnels

4.1.2. Singleton

On s'assure qu'une classe n'a qu'une seule instance

4.2. Structural Patterns

4.2.1. Adapter

Ça adapte

4.2.2. Composite

Gérer des objets qui contiennent des objets de même type

Author: romann

Created: 2026-10-02 ven. 23:36

Validate