Sto cercando di capire quando usare una classe base con Polymorphism o un'interfaccia.
Se il mio oggetto espone DoThis () allora non riesco a capire perché è importante se si tratta di un'interfaccia di una classe base.
Tieni presente quanto segue
public void MyMethod()
{
var myObject = new MyObject();
myObject.DoThis();
}
Riguardo a MyObject, avrei potuto crearlo in 2 modi
Approccio 1
public class MyObject : IMyInterface
{
public void DoThis()
{
//logic
}
}
Approccio 2
public class MyObject : MyBaseObject
{
public override void DoThis()
{
//logic
}
}
Da quello che posso vedere, entrambe le implementazioni raggiungono la stessa cosa.
Il problema potrebbe essere il mio esempio è troppo semplice / inventato ma, c'è un modo per sapere quando utilizzare un approccio rispetto all'altro? Nel mio esempio sopra, vorrei indovina la risposta è la preferenza? Non ho mai fatto progetti importanti prima e quindi immagino che uno non sia così estensibile ma non so perché lo penso!