Sobes.tech
Junior

Parla dei paradigmi e dei principi della programmazione orientata agli oggetti.

sobes.tech AI

Risposta dell'AI

Paradigmi OOP:

  1. Incapsulamento: Nascondere dati e metodi all'interno di una classe, fornendo accesso tramite un'interfaccia.
  2. Ereditarietà: Creare nuove classi (sottoclassi) basate su classi esistenti (superclass), ereditando proprietà e metodi.
  3. Polimorfismo: Capacità di usare oggetti di diverse classi tramite un'interfaccia comune, eseguendo comportamenti specifici di ogni classe.

Principi di OOP (SOLID):

  1. Principio di Responsabilità Singola (SRP): Ogni classe ha una singola responsabilità.
  2. Principio Aperto/Chiuso (OCP): Le classi devono essere aperte all'estensione, ma chiuse alla modifica.
  3. Principio di Sostituzione di Liskov (LSP): Gli oggetti di una classe base possono essere sostituiti con oggetti di una classe derivata senza alterare la correttezza del programma.
  4. Principio di Segregazione delle Interfacce (ISP): I clienti non devono dipendere da interfacce che non usano.
  5. Principio di Inversione delle Dipendenze (DIP): I moduli di alto livello non devono dipendere da moduli di basso livello; entrambi devono dipendere da astrazioni.

Esempio di incapsulamento e ereditarietà:

// Classe base
public class Animal
{
    public string Name { get; set; }

    public Animal(string name)
    {
        Name = name;
    }

    public virtual void MakeSound()
    {
        Console.WriteLine("Suono generico");
    }
}

// Classe derivata
public class Dog : Animal
{
    public Dog(string name) : base(name)
    {
    }

    // Sovrascrivere metodo della classe base
    public override void MakeSound()
    {
        Console.WriteLine("Bau!");
    }
}

Esempio di polimorfismo:

Animal myAnimal = new Dog("Buddy");
myAnimal.MakeSound(); // Stampa "Bau!"