Mam do rozwiązania problem: piszę prosty interpreter komend pozwalający na pewną, niewielką dowolność w ich składni. Jednak nie ich składnia jest problemem, a zestaw dostępnych komend w danym momencie. Zależnie od kontekstu w którym się znajduje użytkownik, ma on dostępne dodatkowe komendy. Kontekst zmienia się często, więc zestaw komend jest dosyć dynamicznie budowany.
Znacie jakieś typowe rozwiązanie takiego problemu? Myślicie, że wzorzec Command lub Chain of Responsibility dałby radę o ile zestaw
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Grizwold: No to niestety nic nie polecę poza Googlem – jestem PEWIEN, że są biblioteki ułatwiające pisanie takich rzeczy (skoro są dla #nieprogramowanie #php to tym bardziej będą dla Javy).

Co do wzorców, akurat Command+CommandHandler możesz „zautomatyzować” z CommandBus – czyli robisz szynę ogólną i podpinasz pod nie Handlery – a każdy Handler rozpoznaje czy wspiera Commanda i jeśli tak, to go obsługuje.

W ten sposób
  • Odpowiedz
@Harry19911: ja bym zrobił klasę PrepaidSendSms która ma wstrzyknięte te dwie klasy, i ona odpowiada za wysłanie i pobranie środków z konta

skąd wiesz czy później nie będziesz potrzebował wysłac sma z jakichś punktów, albo rozliczał smsy na koniec okresu itd. itd. więc po co od razu robić klasę SendSMS taką ciężką

of course pewnie klasa SendSMS może dispatcheować jakieś eventy ale raczej powinno to służyć do jakiegoś general loga
  • Odpowiedz
@Harry19911: Plus dla @Jaslanin za dobre rozwiązanie – kompozycja. Masz jeden wyspecjalizowany obiekt do wysyłania SMSów, masz drugi wyspecjalizowany obiekt do płatności – zrób trzeci, który połączy te dwa zadania.

Twoje rozwiązanie – z wstrzykiwaniem obiektu płatności do wysyłacza SMSów – też uznałbym za akceptowalne, ALE pod warunkiem, że sygnaturę zależności uzależnisz od interface'u: tzn proponowałbym, żeby SendSms (BTW, czemu nie SmsSender?) dostawał w konstruktorze obiekt spełniający interface SmsSendAuthorizer->auhorize($this, $orWhateverYouNeed)
  • Odpowiedz
Siema
Temat pewnie wałkowany setki razy ale nei mogę znaleźć odpowiedzi.
Coraz częsciej musze cos w C# klepać, także szukam strony/turotoriali/zbioru z przykładami użycia wzorców projektowych ale w konkretnych życiowych przykładach aplikacji.
Sklep z curkierkami, tudzież krucjata króla ryszarda napisana obiektowo mnie nie interesują.

Przykład który do mnie trafia (potrzebowałem napisać sterownik do baz danych , użyłem fabryki)
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Zapewne zostanę wyśmiany, ale nie mam pojęcia gdzie indziej spytać.

Otóż przez cały czas wszystko pisałem strukturalnie, jednak pora nauczyć się obiektowości.

Niezbyt rozumiem w jaki sposób to działa i czemu to służy, więc postanowiłem spytać:

Czy
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@R4vPL: Kojarzysz assemblera ? Wyobraz sobie ze piszesz aplikacje w assemblerze ... trudne prawda ? Dlatego masz PHP ktory ukrywa przed toba te zlozonosc i pozwala ci programowac na wyzszym poziomie abstrakcji. Miast operowac na rejestrach i akumulatorach mozesz sobie po prostu napisac ze 1+1 i przypisac do zmiennej. To co sie dzieje pod spodem, nie musisz tego znac. Podobnie jest z programowaniem obiektowym. Dzieki tej technice mozesz stworzyc wlasna
  • Odpowiedz
#oop

jak słyszę, że dla firmy ważniejsze są unit testy od właściwego kodu, to od razu firma trafia na moją czarnolisto
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Ok. Mam pewien problem. Postaram się go w miarę rozsądnie wytłumaczyć.

Załóżmy, że mam klasę X, która ma 5 pól. Po klasie X dziedziczą dwie klasy: Y i Z. Klasa Y ma 2 pola, klasa Z jedno.

I tak by to wyglądało w idealnym świecie.

Problem
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Spać mi to nie daje:

Piszę aplikację w objective-c (na iphona) w celach czysto edukacyjnych. Jest to gra karciana. Mam następujący problem związany z MVC:

W dużym skrócie model składa się z karty, talii kart i "gry karcianej". Karta może być wybrana oraz już dopasowana. Mam teraz zrobić tak, żeby po każdym wybraniu karty wyświetlał się w etykiecie tekstowy opis akcji np.: "Matched X Y for 2 points".

W
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Ginden: a czy dodanie do kontrolera tablicy z indeksami kart klikniętych (bo teraz głównie nie podoba mi się [cardButton.currentTitle length] i cardButton.enabled) i pola do modelu z ostatnią zmianą stanu punktów oraz metoda gameStatus generująca ten napis też będzie ok?
  • Odpowiedz
Hej miraski. Mam problem projektowy i zastanawiam się jak go rozwiązać, żeby nie pogwałcić zasady Open-Closed Principle.

Przypuśćmy, że mamy klasę abstrakcyjną

Shape
. Mamy też kilka klas konkretnych, tj.
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Marmite: Przykładowo tak działa (#php) Symfony Serializer.

Zanim dane/obiekty zostaną zserializowane np do JSONa, muszą zostać „spłaszczone” („znormalizowane”) do prostych danych. Każdy normalizator implementuje NormalizerInterface z dwiema
  • Odpowiedz
Mam kolejne pytanie. Czy nie lepiej przekazać instancję formy głównej, aby wtyczka mogła pracować na tej formie (dodawanie przycisków, wpisów do paska menu itp.)? Czy nie daję za dużego zaufania wtyczce? Jak temu zaradzić? Lepiej napisać fasadę pod formę, czy lepiej dać całe uprawnienia do formy wtyczce?

#programowanie #oop #plugin
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Zależy. Ale dlaczego wtyczka miałaby mieć dostęp do całego forma? Zwykle dajesz opcję zarejestrowania przycisku i tyle. Możliwość dania całej formy z kolei może być niebezpieczna ze wzlędu na kopatybilność wsteczną. Zmienisz jakiś element layoutu który akurat jakiś wariat potrzebował i bach - nieszczęście gotowe :)
  • Odpowiedz
Mam małą zagwozdkę. Tworzę aplikację (menedżer pobierania) w architekturze kompletnie wtyczkowej (aplikacja składa się z samych pluginów). I teraz mam dylemat: czy utworzyć singleton, który będzie rejestrował poczynania wtyczki i będzie mediatorem między aplikacją i jej mechanizmem a wtyczką, czy lepiej przekazać instancję menedżera podczas inicjalizacji wtyczki, czy w ogóle zrezygnować z tego wzorca...

Co mirki-programirki myślą?

#programowanie #csharp #plugin #oop
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@pejaonomato: Jak nie jesteś pewny czy "wzorzec mediator" jest dobry to z niego zrezygnuj bo wg mnie go niepotrzebujesz, jak chcesz oop no to zastanów się co główna aplikacja powinna robić, np pokazywać gui, no to robisz jakiś obiekt Gui i go pchasz do tych wtyczek (wtyczki z reguły mają jakiś entry point więć tam możesz to posłać). No i oczywiście interfejsem - potem będziesz mógł zrobić mocka i sobie
  • Odpowiedz
Drogie Mirki,

Piszę jako projekt z programowania obiektowego (#cpp) w #studbaza grę "statki". Wybrałem sobie bibliotekę #sfml, ale mam problem jak ładnie połączyć elementy gry (pola, statki) z ich reprezentacjami graficznymi.

Czy lepiej będzie utworzyć klasę bazową, po której będą dziedziczyć wyświetlane elementy i umieszczać je w kontenerze
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mam pytanie dotyczące wzorców.

Mam takie klasy - Session i Request.

Lepiej zrobić

session.PreformRequest(request)
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach