Aller au contenu

Composition et Encapsulation

4 classes démontrant composition vs association

Démontre la composition et l’encapsulation.

  • Composition: Car doit avoir CarInfo (montré avec losange rempli *--)
  • Association: Car peut avoir OwnerInfo (montré avec flèche -->) - zéro ou un propriétaire
  • Plusieurs constructeurs montrant différentes options d’initialisation
  • Les propriétés privées ont des getters et setters
  • Méthodes de comparaison pour comparer les voitures

Informations essentielles sur une voiture (relation de composition).

  • Ne peut pas exister sans une Car
  • Les propriétés privées ont des getters et setters

Informations sur le propriétaire de la voiture (relation d’association).

  • Peut exister indépendamment de Car
  • Les propriétés privées ont des getters et setters

Gère plusieurs voitures (association un-à-plusieurs).

  • Méthodes pour compter les voitures et rechercher par marque
  • Les propriétés privées ont des getters et setters
classDiagram
    class Car {
        -int speed
        -int maxSpeed
        +Car(CarInfo carInfo)
        +Car(CarInfo carInfo, int speed)
        +Car(serialString Number, String brand, int speed)
        +compare(Car v1, Car v2) String
        +compare(Car v) String
        +accelerate(int speed)
        +decelerate(int speed)
    }
    class Parking {
        -String name
        -String city
        -String address
        +Parking(name, address, city)
        +countByBrand(String brand) int
        +countCars()
        +add(Car c)
    }
    class CarInfo {
        -String serialNumber
        -String brand
        +CarInfo(serial, brand)
    }
    class OwnerInfo {
        -String firstName
        -String lastName
        +OwnerInfo(firstName, lastName)
    }
    CarInfo "1" *-- "1" Car
    Car "1" --> "0..1" OwnerInfo
    Parking "1" --> "0..*" Car