Sobes.tech
Junior

Cos'è l'astrazione nella programmazione?

sobes.tech AI

Risposta dell'AI

L'astrazione è un meccanismo che consente di nascondere i dettagli di implementazione e di fornire una rappresentazione generale del sistema o dei suoi componenti. Si concentra sul "cosa" fa un oggetto, e non sul "come" lo fa.

In C#, l'astrazione viene realizzata tramite:

  • Classi astratte: Possono contenere metodi astratti (senza implementazione) e membri normali. Non è possibile creare un'istanza di una classe astratta.
    // Classe astratta con metodo astratto
    public abstract class Shape
    {
        public abstract double GetArea(); // Metodo astratto
        public string Name { get; set; }
    
        public void DisplayInfo() // Metodo normale
        {
            Console.WriteLine($"Forma: {Name}");
        }
    }
    
  • Interfacce: Definiscono un contratto che una classe deve implementare. Contengono solo dichiarazioni di metodi, proprietà, eventi e indicizzatori (fino a C# 8), o possono contenere un'implementazione di default (da C# 8 in poi).
    // Interfaccia
    public interface IDrawable
    {
        void Draw(); // Metodo senza implementazione
    }
    

Principi di astrazione:

  • Incapsulamento: Raggruppamento di dati e metodi che operano su questi dati in un unico blocco. Favorisce la nascondiglio della struttura interna.
  • Ereditarietà: Permette di creare nuove classi basate su classi esistenti, ereditando le loro proprietà e metodi, e aggiungendo o ridefinendo funzionalità.

Applicazione dell'astrazione:

  • Semplificazione di sistemi complessi.
  • Aumento della flessibilità del codice.
  • Miglioramento della manutenibilità.
  • Creazione di componenti riutilizzabili.