twitterlinkedinmail

Argomenti esaminati

  • Limiti all’estendibilità delle classi

  • Dichiarazioni Private, Protected e Public

  • Variabili Copia e Riferimento

  • Validazione dei parametri dei Metodi

  • Prevenire la chiamata di metodi overraidable

  • Prevenire le Exceptions nel logging dei dati

Invarianti ed estensibilità

Molti metodi offrono invarianti, che possono costituire una o tutte le garanzie offerte su ciò che un metodo può fare, ovvero requisiti sullo stato richiesto dell’oggetto quando viene richiamato il metodo o garanzie sullo stato dell’oggetto quando il metodo viene completato.

Anche molte classi offrono invarianti, che sono garanzie sullo stato dei campi dei loro oggetti al completamento di uno qualsiasi dei loro metodi.

Ad esempio, le classi i cui campi membro non possono essere modificati una volta che hanno assunto un valore, sono chiamate classi immutabili.

Un’importante conseguenza dell’immutabilità è che le invarianti di istanze di queste classi vengono preservate per tutta il loro ciclo di vita.

Un principio fondamentale della progettazione orientata agli oggetti è che una sottoclasse che estende una superclasse deve preservare le invarianti fornite dalla superclasse.

Sfortunatamente, i principi di progettazione non riescono a limitare efficacemente gli aggressori, che possono creare classi dannose che estendono classi benigne e fornire metodi che violano deliberatamente le invarianti delle classi benigne.

    Accedi ai Contenuti

    Ricevi gli aggiornamenti via email
    e accedi in anteprima ai contenuti: