Apple ha violato l'OCP quando ha rilasciato iOS 7

0

Se ricordo bene, quando è stato rilasciato iOS 7, ci sono stati un paio di problemi riguardanti l'API pubblica di alcune classi che l'implementazione è stata completamente cambiata. Quello che segue è un esempio di cosa intendo:

if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) 
{
    [[UINavigationBar appearance] setTintColor: [UIColor colorWithRed:129/255.0 green:200/255.0 blue:244/255.0 alpha:1.0]];
}
else
{
    [[UINavigationBar appearance] setBarTintColor: [UIColor colorWithRed:129/255.0 green:200/255.0 blue:244/255.0 alpha:1.0]];
}

In questo specifico esempio, prima di iOS 7, il modo corretto per cambiare il colore della barra di navigazione era attraverso l'uso di setTintColor . Una volta uscito iOS 7, non solo un nuovo metodo, setBarTintColor è stato creato per lo stesso scopo, ma anche, invece di deprecare quello precedente, il comportamento è stato modificato, causando la rottura di più codici sorgente (quindi la necessità di utilizzare un condizionale if-else in runtime: controlla la versione corrente e chiama il metodo giusto).

Questo conta come una violazione del Principio Aperto / Chiuso?

    
posta Christopher Francisco 07.10.2015 - 22:19
fonte

0 risposte

Leggi altre domande sui tag