Il codice che ho ereditato ha un design che non conosco (sono ancora nuovo nel mondo della programmazione).
È un progetto .net e ci sono 3 classi in questione qui.
public Class1
{
public void DoSomething()
{
Class2 class2 = new Class2();
string myValue = class2.GetSomeValuePlease();
//why would I not do class2.MyClass3.GetActualValue();
}
}
public Class2
{
public Class3 MyClass3 = new Class3();
public string GetSomeValuePlease()
{
return this.MyClass3.TheActualValue();
}
}
public Class3
{
public string TheActualValue()
{
return "This is the value";
}
}
Come puoi vedere, tutte e 3 le classi sono pubbliche. Non capisco perché, usando l'esempio sopra, vorrei usare Class2? Potrei capire se all'interno del metodo GetSomeValuePlease()
ci fosse qualche logica che ha influenzato Class2, ma non c'è.
Normalmente, andrei avanti e rimuovere il metodo Class2 (GetSomeValuePlease) e chiamare il metodo Class3 (GetActualValue) direttamente da Class1, ma lo sviluppatore che ho assunto (che non è contattabile) è più saggio e più esperto di me Ho un sentimento questo è solo un po 'di ingegneria e questo è solo un codice extra / manutenzione extra.
Qualcuno ha esperienza nel progettare in questo modo che potrebbe spiegare il processo di pensiero o le implicazioni di avere questa "classe media" o andare diretta?