Wątek przeniesiony 2022-06-21 17:19 z Kosz przez Adam Boduch.

Strategia w programowaniu obiektowym

0

Dzięki za lepszy przykład

slsy napisał(a):

Ten przykład jest akurat średni, bo dałoby się przerobić API w taki sposób, że id jest podawane przez klienta.

Ale ogólnie chciałbym ID generowane z bazy. Niby można najpier pobrać z sekwencji, a potem zrobić save, ale to już są dwa strzały do bazy. Tego raczej żaden kompilator nie zoptymalizuje w jedno zapytanie

3

@Riddle:

Próbowałeś kiedyś pisać jakiś projekt według tych pryncypiów? a w szczególności tego z voidem?

4

Chciałbym zobaczyć jak wygląda code review w zespole kiedy to Riddle je robi. Pewnie autor MR bierze l4 :D.

2

Jako ciekawostkę można powiedzieć, że Pascal odróżnia procedurę (podprogram, który coś tam robi, ale nie zwraca niczego) od funkcji (podprogram, który zwraca wartość).

Przy czym funkcje dalej mogą coś robić w Pascalu poza tym, że zwrócą wartość na końcu, więc nie muszą być to czyste funkcje.

0
LukeJL napisał(a):

Jako ciekawostkę można powiedzieć, że Pascal odróżnia procedurę (podprogram, który coś tam robi, ale nie zwraca niczego) od funkcji (podprogram, który zwraca wartość).

Przy czym funkcje dalej mogą coś robić w Pascalu poza tym, że zwrócą wartość na końcu, więc nie muszą być to czyste funkcje.

A metody w delphy też mają to rozróżnienie? No bo jednak o CQS w kontekscie OOP tu mówimy/piszemy
Chyba że coś pomieszałem bo już po kieliszku whisky jestem

5

Ruby natomiast ma coś takiego, że metody, które modyfikujące obiekt dodatkowo oznacza się wykrzyknikiem, aby można było wyraźnie widzieć w kodzie, czy coś mutujemy czy nie (ale to tylko konwencja, nie jest to wymuszne). Nazywa się to bang methods.

0
Spearhead napisał(a):

Ruby natomiast ma coś takiego, że metody, które modyfikujące obiekt dodatkowo oznacza się wykrzyknikiem, aby można było wyraźnie widzieć w kodzie, czy coś mutujemy czy nie (ale to tylko konwencja, nie jest to wymuszne). Nazywa się to bang methods.

Nie do końca.

! też czasem służy żeby mieć dwie metody, np save() oraz save!(), i np jeden jest lazy a drugi eager.

1

I co? Jaki jest wynik? Doszliscie do jakiegoś konsensusu?

9
kzkzg napisał(a):

I co? Jaki jest wynik? Doszliscie do jakiegoś konsensusu?

No ja nie wiem, ale jestem niepocieszony. W czwartek, w środku dnia napisano tutaj, że proceduralny kod z Basica C64 jest obiektowy, cały czas utrzymując, że strategia, która z definicji i pochodzenia jest wzorcem programowania obiektowego, obiektowa nie jest. W czwartek w ciągu dnia, a więc zakładam, że kompletnie na trzeźwo.
Miałem nadzieję, że weekend przyniesie tu coś jeszcze lepszego, no bo alkohol oraz wysokie temperatury mogą pomóc snuć tego typu wizje. A tu cisza. :(

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