C# orienté objet

Préférer la composition (composition) à l'héritage en C#

Dans cette leçon, vous allez construire une commande à partir de petits objets qui collaborent, au lieu d'utiliser l'héritage.

Introduction

La composition (composition) consiste à construire un objet en assemblant des objets plus petits, chacun ayant une tâche claire. Par rapport à l'héritage, cette approche garde les classes légères et faciles à modifier, et évite les hiérarchies d'héritage complexes et rigides.

La commande Order contient une liste de lignes LineItem au lieu d'en hériter. La propriété Total délègue le calcul à chaque ligne avec Items.Sum(item => item.Price). Chaque objet n'a qu'une seule responsabilité, et le total du livre et du stylo est 35.

Exemple C# exécutable

C#
Exécuter le code →
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;

record LineItem(string Name, decimal Price);
class Order
{
    public List<LineItem> Items { get; } = new();
    public decimal Total => Items.Sum(item => item.Price);
}

class Program
{
    static void Main()
    {
        var order = new Order();
        order.Items.Add(new("Book", 30m));
        order.Items.Add(new("Pen", 5m));
        Console.WriteLine(order.Total);
    }
}
Résultat de l’exécution
35

S'entraîner avec le débogueur

Placez un point d'arrêt sur une affectation ou une condition importante, cliquez sur Debug et inspectez les valeurs locales avant de passer à la ligne suivante.