Tworzenie łańcucha konstruktorów Stosowanie łańcucha konstruktorów jako metody refaktoryzacyjnej jest wskazane w typowych przypadkach nadmiarowości kodu w klasach o wielu konstruktorach, które nadpisują po sobie kod. Sztandarowym przykładem takiej sytuacji jest przypisywanie wartości parametrów do pól w każdym konstruktorze klasy:
Pozyczka(wartosc) { this.wartosc = wartosc; }
Pozyczka(wartosc, oprocentowanie) { this.wartosc = wartosc; this.oprocentowanie = oprocentowanie; }
Pozyczka(wartosc, oprocentowanie, czasSplaty) { this.wartosc = wartosc; this.oprocentowanie = oprocentowanie; this.czasSplaty = czasSplaty; }
Można zauważyć, że zamiast każdorazowego przypisywania wartości można utworzyć tzw. łańcuch, który pozwoli na uproszczenie kodu:
Pozyczka(wartosc) { this(wartosc, null); }
Pozyczka(wartosc, oprocentowanie) { this(wartosc, oprocentowanie, null); }
Pozyczka(wartosc, oprocentowanie, czasSplaty) { this.wartosc = wartosc; this.oprocentowanie = oprocentowanie; this.czasSplaty = czasSplaty; }
W przypadku, gdy łańcuch konstruktorów jest długi, kolejne wywołania mogą okazać się mało wydajne.