Programmazione su un'interfaccia e mantenimento della testabilità in classi uniche [duplicato]

-2

Cerco di programmare un'interfaccia ogni volta che è possibile, ma quando ho una classe che soddisfa uno scopo molto specifico e unico, che non può essere astratto. E 'corretto per me dire che ho raggiunto i limiti dell' "astrazione" e che devo passare solo nella classe concreta?

public void DoSomethingWith (HighlySpecificClass specificClass, ISomeInterface abstractedClass)

Quindi, se il "programma su un'interfaccia" è più una linea guida che una regola complessa, come posso renderlo testabile? Devo creare comunque un'interfaccia "header" per questo?

    
posta profile 29.06.2015 - 09:32
fonte

1 risposta

0

'Programma su un'interfaccia' è un'istruzione generale indipendente dalla lingua. Con linguaggi come C # e Java che hanno una funzione di linguaggio esplicita chiamata interface , ciò può portare a la confusione .

La cosa da ricordare è che entrambe le lingue hanno almeno due modi di definire le interfacce;

  • esplicitamente, con una parola chiave
  • implacitly, prendendo una classe e rendendo accessibili solo i bit rilevanti (con public ecc.).

Sapere quando usare il modo in cui definire un'interfaccia è in generale un giudizio.

A volte una tecnologia o uno strumento specifici prenderanno la decisione per te. Ad esempio, se si stesse utilizzando uno strumento di simulazione che supporta solo interfacce di derisione, e un test particolare ha bisogno di una cosa da prendere in giro, allora si dovrà usare un'interfaccia esplicita.

Ma idealmente useresti uno strumento meno limitato che supporta sia interfacce esplicite che implicite.

    
risposta data 29.06.2015 - 18:22
fonte

Leggi altre domande sui tag