czy to nie jest nadużycie konstruktora?

0

Do strony HTML pisze jeden spory skrypt JS (właściwie jedna duża klasa). Jakiś czas temu z rozpędu i w celach prototypowych umieściłam w konstruktorze wywołanie metody tej klasy, która to metoda wiesza obsługę zdarzeń na elementach DOM. Właściwie jakoś potem o tym zapomniałam, ale wczoraj czytałam kod w całości i zaczęłam się zastanawiać czy to poprawne. TZN w przykładach, jakie przy różnych okazjach przeglądałam, w konstruktorze raczej nadawano początkowe wartości zmiennym, ale nie wywoływano metod. Ponieważ ta akurat praca być może będzie oceniana, napiszcie proszę, czy to co zrobiłam, potraktowalibyście jako błąd.

1

W momencie wywołania konstruktora instancja obiektu istnieje już w pamięci - dlatego bez problemu możesz wywoływać z konstruktora inne metody czy przypisywać wartości do pól bez konieczności ręcznej alokacji pamięci.

Stąd tak: jest to bezpieczne, nie jest to żaden błąd / karygodna praktyka i bywa czasami przydatne (np. ja przy budowanie co bardziej złożonych komponentów jQuery wyrzucałem niektóre fragmenty konstruktora do odrębnych metod w stylu createEventListeners() itd., ponieważ w ten sposób kod wychodził czytelniejszy).

Inną sprawą z kolei jest fakt, że jeśli masz bardzo złożony konstruktor, prawdopodobnie coś poszło nie tak i tak naprawdę powinnaś mieć prosty konstruktor do pary z odrębnym obiektem realizującym wzorzec fabryka - wszystko jednak zależy od przypadku.

0

Nie jestem pewien co do konstruktora ale to jest nadużycie klasy - właściwie jedna duża klasa

0
Patryk27 napisał(a):

W momencie wywołania konstruktora instancja obiektu istnieje już w pamięci - dlatego bez problemu możesz wywoływać z konstruktora inne metody czy przypisywać wartości do pól bez konieczności ręcznej alokacji pamięci.

Stąd tak: jest to bezpieczne, nie jest to żaden błąd / karygodna praktyka i bywa czasami przydatne (np. ja przy budowanie co bardziej złożonych komponentów jQuery wyrzucałem niektóre fragmenty konstruktora do odrębnych metod w stylu createEventListeners() itd., ponieważ w ten sposób kod wychodził czytelniejszy).

Inną sprawą z kolei jest fakt, że jeśli masz bardzo złożony konstruktor, prawdopodobnie coś poszło nie tak i tak naprawdę powinnaś mieć prosty konstruktor do pary z odrębnym obiektem realizującym wzorzec fabryka - wszystko jednak zależy od przypadku.
Dzięki, wzorców jeszcze nie przerabiałam, ale mnie uspokoiłes co do głównej wątpliwości

0
spartanPAGE napisał(a):

Nie jestem pewien co do konstruktora ale to jest nadużycie klasy - właściwie jedna duża klasa

Tylko, widzisz, nie bardzo jest co z niej wyjąć na zewnątrz, nie ma w środku jakichś uniwersalnych fragmentów, wszystko jest celowane pod zastosowanie właśnie w niej

1 użytkowników online, w tym zalogowanych: 0, gości: 1