Wątek przeniesiony 2019-08-06 11:34 z przez cerrato.

Konstruktory vs metody statyczne - co lepsze w tym przypadku?

Odpowiedz Nowy wątek
2019-08-06 11:08
0

Cześć,
Mam takie proste zadanie: jest sobie encja A i encja B, i jest między nimi relacja jeden do wielu. Na każdym rekordzie B, który posiada relację do A mają ustawiać się pewne pola na podstawie pól A. Mamy sobie triggery:
-After update na A - jeśli zmieni się któreś z pól, na podstawie których ustawia się pola B;
-Before insert na B - ustawiamy pola na podstawie B;
-Before update na B - jeżeli na B zmieniło się pole z kluczem obcym A.

No i zrobiłem tak:
Przeciążony konstruktor: jeden przyjmuje kolekcję A i na tej podstawie wyszukuje powiązanych B do update'a, drugi przyjmuje kolekcję B i analogicznie wyszukuje powiązanych A, potem mamy wspólną metodę kalkulującą i ustawiającą pola.

Mój lead mówi: weź się nie baw w konstruktory i zrób po prostu metody statyczne.
Jakie macie zdanie na temat zalet i wad obu rozwiązań?

Dodaj, proszę, tag opisujący, jakiego języka/technologii to dotyczy, bo rozwiązanie może być silnie uzależnione od dostępnych w danym języku mechanizmów. - Koziołek 2019-08-06 13:20

Pozostało 580 znaków

2019-08-06 11:31
0
  1. Ale konstruktor czego?
  2. Te pola muszą być fizycznie ustawione, nie mogą się zwyczajnie wyliczać w locie?
  3. W ogóle nie bardzo rozumiem jaki setup tam masz. To ma być spójne w bazie? W runtime? Co jeśli wyciągnąłeś encje z bazy a potem się coś zmienia?
  4. Nijak nie widze jak do tego wszystkiego maja się metody statyczne.

Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
edytowany 1x, ostatnio: Shalom, 2019-08-06 11:31

Pozostało 580 znaków

2019-08-06 11:33
1

Nie rozumiem co chcesz osiągnąć ale konstruktor to ma konstruować obiekt wg przekazanych do niego argumentów a nie wyszukiwać jakiś danych i kalkulować rzeczy

edytowany 1x, ostatnio: baant, 2019-08-06 11:34

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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