You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Update @efiku:
Jak zapewne wiemy kod który obecnie refaktoryzujemy to gra Tic tac Toe.
Co możemy się dowiedzieć?
Zobaczmy na to pod kątem bardziej obiektowym. Każdy obiekt , nie może zmienić swojego stanu. Wg zasad ( walidator ) gracz nie może zrobić więcej niż jednego ruchu. Wynik sprawdzany jest podczas wykonania ruchu przez gracza. Zwróćmy uwagę na to, że w taką grę można zagrać na kartce / ścianie / komputerze - konsolowe , graficznie , ale zasady gry się nie zmieniają. Istnieją takie cuda jak plansza, gracz ( którego bym całkowicie odseparował od systemu , interakcja człowieka z systemem to problem 😄 ) , zasady które określają wygraną.
Chciałbym krótko machnąć szkic aplikacji, w zasadzie to warstwy domenowej?
Obecnie jestem jeszcze na etapie studiowania DDD, ale może dobrze rozumiem...
To jest tylko i wyłącznie moja propozycja, nie jest to w stylu: Tak macie robić.
Ta warstwa powinna być odseparowana od całej aplikacji w taki sposób, aby dało się testować ją z przeróżnymi kombinacjami.
Wobec tego do dyspozycji możemy mieć następujące VO: Jak wiemy, VO raz stworzone nie może być już modyfikowane.
VO - Item - klasa finalna posiadająca w konstruktorze tylko 1 parametr mianowicie nazwa tego obiektu
VO Position, klasa finalna która w konstruktorze przyjmuje 2 argumenty , pos1, pos2
VO - Field , finalna klasa która w konstruktorze przyjmuje 2 parametry. Parametr pierwszy Position, drugi Item.
Oraz Repozytorium:
klasa BoardRepository przechowująca kolekcję Field.
metody , find, add.
Cała ta warstwa zajmowałby się tylko dodawaniem do kolekcji / zwracaniem danych z kolekcji na podstawie jakiś kryteriów.
Warstwa aplikacji
Dodawania ( najniższa )
W momencie gdy dostanie zielone światło z warstwy wyżej dodaje do planszy obiekt o określonych kordach.
Walidacji
W tej warstwie mógł by się znajdować walidator z tym magicznym kwadratem.
Odwołujący się do kolekcji z planszy
Walidacja następuje na podstawie danych z warstwy wyżej
Sterująca ruchem
Otrzymuje dane na temat planowanego ruchu z warstwy wyżej , wołając o sprawdzenie do warstwy niżej.
Zielone -> Wola dodawanie.
Czerwone -> Wola generator widoku dla remisu / porażki / zwycięstwa
Gracz
Gracz na podstawie warstwy wyżej otrzymuje kordynaty gdzie chce postawić kółko / krzyżyk i obiekt item
Widok
Konsola / Graficznie
: Graficznie tutaj pasowałoby pakować np SFML i nigdzie indziej.
The text was updated successfully, but these errors were encountered:
Update @efiku:
Jak zapewne wiemy kod który obecnie refaktoryzujemy to gra Tic tac Toe.
Co możemy się dowiedzieć?
Zobaczmy na to pod kątem bardziej obiektowym. Każdy obiekt , nie może zmienić swojego stanu. Wg zasad ( walidator ) gracz nie może zrobić więcej niż jednego ruchu. Wynik sprawdzany jest podczas wykonania ruchu przez gracza. Zwróćmy uwagę na to, że w taką grę można zagrać na kartce / ścianie / komputerze - konsolowe , graficznie , ale zasady gry się nie zmieniają. Istnieją takie cuda jak plansza, gracz ( którego bym całkowicie odseparował od systemu , interakcja człowieka z systemem to problem 😄 ) , zasady które określają wygraną.
Chciałbym krótko machnąć szkic aplikacji, w zasadzie to warstwy domenowej?
Obecnie jestem jeszcze na etapie studiowania DDD, ale może dobrze rozumiem...
To jest tylko i wyłącznie moja propozycja, nie jest to w stylu: Tak macie robić.
Ta warstwa powinna być odseparowana od całej aplikacji w taki sposób, aby dało się testować ją z przeróżnymi kombinacjami.
Wobec tego do dyspozycji możemy mieć następujące VO:
Jak wiemy, VO raz stworzone nie może być już modyfikowane.
Oraz Repozytorium:
metody , find, add.
Cała ta warstwa zajmowałby się tylko dodawaniem do kolekcji / zwracaniem danych z kolekcji na podstawie jakiś kryteriów.
Warstwa aplikacji
Dodawania ( najniższa )
W momencie gdy dostanie zielone światło z warstwy wyżej dodaje do planszy obiekt o określonych kordach.
Walidacji
W tej warstwie mógł by się znajdować walidator z tym magicznym kwadratem.
Odwołujący się do kolekcji z planszy
Walidacja następuje na podstawie danych z warstwy wyżej
Sterująca ruchem
Otrzymuje dane na temat planowanego ruchu z warstwy wyżej , wołając o sprawdzenie do warstwy niżej.
Zielone -> Wola dodawanie.
Czerwone -> Wola generator widoku dla remisu / porażki / zwycięstwa
Gracz
Gracz na podstawie warstwy wyżej otrzymuje kordynaty gdzie chce postawić kółko / krzyżyk i obiekt item
Widok
Konsola / Graficznie
: Graficznie tutaj pasowałoby pakować np SFML i nigdzie indziej.
The text was updated successfully, but these errors were encountered: