wzorce projektowe

0

Cześć,
Proszę o pomoc w naprowadzeniu mnie jak zabrać się za poniższe zadanie. Czytałem o tych wzorcach dużo jednak nie potrafię tego zastosować do mojego zadania.
Oczywiście nie chcę by tu ktoś pisał za mnie kod, tylko pomógł mi w zrozumieniu tego, naprowadzeniu jak mam to zrobić.

Wykonać model procesu lepienia bałwana. W tym celu należy dokonać dekompozycji celem wydobycia artefaktów, określić wymagane obiekty i klasy. W opracowanym modelu wykorzystać wzorce projektowe:metoda fabrykująca, budowniczy, prototyp. Zaimplementować powstały model.

1

https://refactoring.guru/design-patterns/prototype
https://refactoring.guru/design-patterns/builder
https://refactoring.guru/design-patterns/factory-method

Z czego składa się bałwan? Ma głowę, która składa się z nosa, oczu i uśmiechu, czapki i szalika oraz 2 kulki, które mają guziczki. Teraz musisz tylko popatrzyć co te wzorce robią i jak zbudować tego bałwana ;)

1

W opracowanym modelu wykorzystać wzorce projektowe:metoda fabrykująca, budowniczy, prototyp.

Co to za uczelnia? Będę wiedział na jaką nie iść, jeśli kiedyś zapragnę pogłębić swoją wiedzę na temat informatyki.

Niewiele się nauczysz, jeśli każą ci po prostu zaklepać tak jak ktoś mówi, na dodatek wrzucając tam bezmyślnie wzorce projektowe, które ktoś ci z góry podał.

Więc jest to uwstecznianie pod pozorem nauki.

Wykonać model procesu lepienia bałwana. W tym celu należy dokonać dekompozycji celem wydobycia artefaktów, określić wymagane obiekty i klasy.

Ten fragment zadania ma jeszcze sens. Ja bym to zrobił tak:

Wykonać model procesu lepienia bałwana.

wyobraziłbym sobie, jak się lepi bałwana i podzieliłbym sobie na kroki na kartce, narysowałbym tego bałwanka, i podpisał jakie kroki zrobić.

Zadanie jest dość luźno określone, więc mogą to być kroki:

  1. weź kulę
  2. weź drugą kulę
  3. weź trzecią kulę
  4. dodaj ozdoby (marchewka itp.).

A możemy uznać, że należy również też zamodelować robienie kuli:

  1. weź kawałek śniegu
  2. zacznij toczenie, aż do momentu odpowiedniej wielkości
  3. jak kula nabierze rozmiaru, to ją weź w ręce
  4. podejdź do celu, w którym ma być bałwan
  5. połóż kulę

itp.
można jeszcze bardziej się rozdrobnić. Np. modelowanie ozdób to też może być ileś kroków

  1. wyjmij guzik z kieszeni
  2. połóż na pozycji y
  3. y += odstęp między guzikami
  4. powtórz, aż skończą ci się guziki

Natomiast potem bym pomyślał jak to zrobić pod kątem kodu. Nie myślałbym w ogóle o wzorcach, tylko o bałwanku. Stworzyłbym strukturę danych reprezentującą bałwanka. Pewnie byłoby to jakieś drzewo obiektów, gdzie Bałwan miałby obiekty-dzieci (kule śniegowe), kule śniegowe miałyby swoje obiekty-dzieci (guziki, marchewka itp.).
I lepienie polegałoby na stworzeniu obiektu (np. kuli, marchewki) oraz na dodaniu tego obiektu do odpowiedniego obiektu-rodzica.

Lepienie kuli mógłbym zamodelować tak, że miałbym obiekt kuli, który w regularnych interwałach czasowych (np. co ułamek sekundy) by się powiększał o jakąś tam wartość. Chociaż tak bardzo szczegółowo to już chyba bym tego nie modelował.

budowniczy

nie widzę tu zastosowania dla budowniczego.

metoda fabrykująca,

Być może, przy tworzeniu obiektów. A być może konstruktor by wystarczył.

prototyp

Może tak, a może metoda fabrykująca by wystarczyła. A może klasa i jej konstruktor?

W każdym razie tych wzorców może bym użył, może nie, ale wydaje mi się, że decydujące byłoby to, w jaki sposób zamodelować samego bałwana (ja postawiłem na hierarchiczne drzewko obiektów, ale pewnie można i inaczej).

No ale co ja tam wiem, pewnie bym 2 dostał, bo zrobiłbym po swojemu, a nie tak jak każe instruktor na studiach czy na innym bootcampie XD

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