Il principio di segregazione dell'interfaccia si applica ai parametri / oggetti richiesta?

-1

Recentemente ho visto un esempio di ciò che ritengo sia una chiara violazione dell'ISP, ma il mio collega ha sostenuto che è più facile da usare. Questo è quello che è successo:

  1. La classe Options aveva due campi inviati come parametro a uno dei metodi in cui erano in uso entrambi i campi.
  2. Poi è stato aggiunto un nuovo campo che è stato utilizzato in un altro metodo, ma il metodo originale non ne ha mai avuto bisogno.

In modo che quando chiami un primo metodo devi inviare un'opzione che ha un campo totalmente irrilevante per il metodo.

Non ho visto le applicazioni dell'ISP in classi / richieste e non solo le interfacce stesse, ma lo considero come una parte dell'interfaccia in realtà.

Quindi mi chiedo se questa è una parte dell'ISP o meno.

    
posta Ilya Chernomordik 28.06.2018 - 09:54
fonte

1 risposta

1

IMHO per certo che lo è. Il principio di segregazione dell'interfaccia parla del codice che ha accesso a qualcosa di cui non ha bisogno e che normalmente porta a confusione e cattiva manutenzione a lungo termine.

Il tuo collega sta discutendo su "è più facile da usare" ... che odora molto come iniziare un " oggetto God "che è facile da usare ma da mantenere.

E in questo caso specifico puoi avere un metodo sovraccarico con un altro parametro e due interfacce diverse con nomi propri. Ciò renderebbe il codice più pulito a lungo termine.

Per riferimento: link

    
risposta data 28.06.2018 - 10:19
fonte

Leggi altre domande sui tag