Ho diversi oggetti che implementano un'interfaccia e diversi repository che eseguono operazioni CRUD su questi oggetti.
Mi è stato assegnato un GUID e non so quale classe sia l'oggetto, ma è in uno di essi e sto usando il repository per ottenere l'oggetto dal suo GUID.
I repos restituiscono diversi tipi.
class Obj1 : IInterface
{
}
class Obj2 : IInterface
{
}
class Obj3 : IInterface
{
}
var repo1 = new Repo1();
var repo2 = new Repo2();
var repo3 = new Repo3();
Obj1 obj = repo1.Get(someGuid);
if (obj != null)
{
// use obj
}
else
{
Obj2 obj2 = repo2.Get(someGuid);
if (obj2 != null)
{
// use obj2
}
else
{
Obj3 obj3 = repo3.Get(someGuid);
if (obj3 != null)
{
// use obj3
}
else
{
// Check another repository
}
}
}
Questo diventa più noioso quando più oggetti implementano quell'interfaccia.
C'è uno schema per questo o per un modo più bello di farlo?