Cześć Wam wszystkim!
Moje zapytanie bądź zaproszenie do pewnego rodzaju dyskusji kieruję do bardziej doświadczonych użytkowników forum, którzy programują już swobodnie z zasadami SOLID i dobrze rozumieją mechanizmy Dependency Inversion oraz Dependency Injection.
Przykład na start do zobrazowania problemu:
class MyOwnList
{
private:
List<MyAnotherClass> list;
public:
//FirstPossibleConstructor
MyOwnList()
{
list = new List<MyAnotherClass>();
}
//SecondPossibleConstructor
MyOwnList(List<MyAnotherClass> list)
{
this.list = list;
}
}
W świetle Dependency Inversion nie tworzymy bezpośrednio w klasie A obiektów klasy B i działamy na poziomie abstrakcji.(Konstruktor 2 w przykładzie). JEDNAKŻE, jak to się ma do Standardowych kolekcji danego języka a nie do własnych innych typów?
Zapraszam do podzielenia się ze mną swoimi zdaniami i doświadczeniem w przedstawionej przeze mnie kwestii:
Stosując się do zasady Dependency Inversion powinniśmy skorzystać z Kostruktora 1 czy 2 z przykładu zamieszczonego przeze mnie powyżej?
Pozdrawiam :D