![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 15.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Od pewnego czasu ucze się programowania obiektowego i natrafiłem na takie zadanie : "Utwórz klasę "rozwiazanie", która będzie mogła wykonać operacje arytmetyczne na takich tablicach jak array(5, "plus", 4), oraz array(2, "razy", 8) i wykonaj na nich działanie arytmetyczne. Pamiętaj, że środkowa wartość w tablicy jest również nazwą klasy - zaimplementuj ją. W przyszłości może być potrzeba obsługi innej operacji arytmetycznej bez potrzeby zmiany kodu". Trochę nie rozumiem po co mam tworzyć jedną klasę "rozwiazanie", która i tak będzie musiała za pomocą funkcji array_search szukać takich słów jak plus, razy, minus, podzielić i wykonać operację na pozostałych wartościach. Jaki jest sens i potrzeba tworzenia kolejnych klas? Jeżeli ktoś może mi to wytłumaczyć to będe bardzo wdzięczny za pomoc. Nie jestem w stanie nawet zrobić sobie szkicu takiego rozwiązania jak to miałoby wyglądać. Pozdrawiam, |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Trochę durny pomysł z przekazywaniem tych trzech informacji (dwie liczby, operacja) w formie tablicy, ale mniejsza z tym.
Ogólnie w ćwiczeniu chodzi o pokazanie pewnej dosyć popularnej struktury kodu zwanej strategią. W wiki masz podany całkiem przyzwoity opis tego wzorca projektowego. Jaki jest sens tego wszystkiego? Przykładowo w tej chwili masz umożliwić realizację jedynie czterech operacji - dodawania, odejmowania, dzielenia oraz mnożenia. Mógłbyś to zrobić chociażby w takiej formie: Jaki jest problem tego kodu? W przypadku chęci zmiany czegoś bądź dodania nowej operacji musimy zmodyfikować ten kod, a to wiąże się z pewnymi komplikacjami. Dodatkowo w przypadku gdyby każda z tych czterech operacji wymagała nieco więcej niż jednej linijki kodu powstałby straszny śmietnik, trudny do utrzymania, udokumentowania czy testowania. Dlatego też same operacje wydzielamy do osobnych obiektów - wtedy wszystko mamy ładnie rozdzielone, dodanie nowej operacji jest proste i nieinwazyjne, a całością jest łatwiej zarządzać. W polskiej wiki masz to ładnie opisane spróbuj to zaimplementować. Jeśli nie dasz rady skorzystaj z innych źródeł (angielska wiki, bądź Google i fraza php strategy pattern). @Sephirus: Zadanie proste i bardzo, ale to bardzo typowe. (IMG:style_emoticons/default/wink.gif) Może z tego opisu nie zrozumiałeś o co do końca chodzi. Ten post edytował Crozin 15.03.2012, 13:52:23 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 12:12 |