Jeśli mam 2 konstruktory w mojej klasie niestandardowej, a jedna z nich przyjmuje dodatkowy argument i robi wszystko, co pierwsze, ale z tylko jedną dodatkową linią kodu (i ta dodatkowa linia wykorzystuje dodatkowy argument), jak najlepiej sobie z tym poradzić bez konieczności duplikowania całego kodu w pierwszym konstruktorze?Jak radzić sobie z 2 prawie identycznymi konstruktorami?
Przykład kodu
public myConstuctor(int number, int number2){
int result = (number + number2);
int result2 = (number2 - number1)
//Etc
//Etc
//Etc
//Etc
}
public myConstructor(int number1, int number2, int number 3){
int result = (number + number2);
int result2 = (number2 - number1)
//Etc
//Etc
//Etc
//Etc
int result3 = (result + result2 + number3)
}
Nie, to nie to samo pytanie, nie pytam konkretnie, jak wywołać jednego konstruktora z innego, pytam jak poradzić sobie z problemem obcinania duplikatu kodu, niezależnie od najbardziej popularnej odpowiedzi bycie właśnie to (zadzwoń do jednego konstruktora z drugiego) – Zippy
"Pytam, jak sobie poradzić z problemem obcinania duplikatu kodu", wybrałeś jako poprawną, a nie poprawną odpowiedź. Lepiej wprowadzić logikę konstruktor z większą liczbą parametrów – nachokk
@nachokk, Jeśli utworzę obiekt, który wymaga tylko 1 argumentu, to nie potrzebuje kodu w konstruktorze 2-argumentowym, więc większość mojej logiki (cała wspólna logika) znajduje się w konstruktorze z * najmniejsze * argumenty, kiedy potrzebuję utworzyć obiekt przechodzący 2 argumenty, wtedy cała logika w oryginalnym konstruktorze 1-argumentowym nadal będzie musiała być uruchamiana, jak to często bywa wszystkie obiekty tego typu, ale będą potrzebowały dodatkowego kodu w konstruktorze 2-argumentowym, odwołuję się do konstruktora 1-argumentowego i uruchamiam wspólny kod, a następnie uruchamiam dodatkowy kod w drugim. Wydaje się być całkowicie logiczne? – Zippy