Wpis z mikrobloga

W odcinku 2 nt. programowania obiektowego Mirosław Zelent robił quiz używając klas.
W pliku .txt znajdowały się pytania ułożone w ten sposób:
--------------------------------------------------------
1 Kto wygral 49 Turniej Czterech Skoczni?
Martin Schmitt
Sven Hannawald
Adam Malysz
Janne Ahonen
c <-------- poprawna odpowiedz
-------------------------------------------------------

Tutaj jest code review:
https://forum.pasja-informatyki.pl/134131/cr-obiektowy-c-%232-struktura-projektu-obiektowego

Ktoś zarzucił (w komentarzu), że program jest kiepsko napisany i wyjaśnił jak to powinno być zrobione (załączony .jpg)
Wiele niestety nie zrozumiałem z tego co napisał, więc jeśli ktoś zna ten temat i umiałby to wytłumaczyć w prosty sposób byłbym wdzęczny

Niech klasa Question będzie encją:

znalazłem definicję encji, ale jest można definicja taka na chłopski rozum?

Question:


- number // define question unique number

- array of Answers // vector, ( Entity Answer: →questionNumber, answer, isGood)

- point // point for question

- getPoint

- getNumber

- getAnswers

- set** // Constructor or Setters


w tym miejscu nie wiem za bardzo co mu chodzi :(

question->getAnswers()->getByKey(userchoice)->isGood; // method body

wrzucił method body, tylko nie wiem jak to rozczytać...

Cały program został zrobiony w jednej klasie nazwanej Pytanie, tutaj mam rozumieć, że powinno się użyć większej ilości klas?
Program jaki zrobił Zelent mimo wszystko wydaje się dla mnie logiczny, chciałbym napisać to według przepisu jaki jest w tym komentarzu, ale nie wiem za bardzo jak się za to zabrać. Za jakąkolwiek podpowiedź czy pomoc byłbym wdzięczny.

#naukaprogramowania #majsterprogramowanie
M.....S - W odcinku 2 nt. programowania obiektowego Mirosław Zelent robił quiz używaj...

źródło: comment_Hb88DEuQNM9qp8oLh5ZsSoNk5gEiFopr.jpg

Pobierz
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@MajsterTS: to co w .jpg to zaimplementowanie zasad solid w kodzie. bardzo pomocne przy pisaniu kodu rozwijalbego. nie czytalem calego komentarza ale na to by wygladalo. niby zelenta wszyscy polecaja a pisze nazwy w kodzie po polsku:(((( czyzby drugi grebosz?
  • Odpowiedz
@MajsterTS: Powiem Ci tak.
Nie wiem ja z C++, ale na przykładzie php czy tam html mogę powiedzieć, że pan Zelent i kod dobrej jakości to niestety dwa różne światy.
Spagetti code, brak rozdzielenia chociażby na podstawowe warstwy danych/widok, i tak dalej.
Więc pewnie tutaj nie jest wiele lepiej.
  • Odpowiedz
@MajsterTS: Ok, już coś mam.
Klasa pytanie ( po polsku nazwana, tak nie powinna być ) jest klasą boską, the good class.
Czyli robi wszystko.

A klasa pytanie powinna tylko mieć
  • Odpowiedz
@MajsterTS: chodzi o to ze klasa nazwana Pytanie nie powinna robic rzeczy ktore moga byc zawarte w innej klasie. Tak to moglbys sobie napisac program w jednej klasie ktora robi wszystko, a tak raczej nie powinno wygladac programowanie obiektowe.
  • Odpowiedz
@przecineq: jakbyś miał czas rozkminiłbyś ze mną jak napisać taki program? Jakieś pojęcie o obiektówce masz, a chcę właśnie napisać to tak jak napisał Darknov, z robiciem na wiele klas.
  • Odpowiedz