Modyfikacja wzorca strategia

0

Dzisiaj widziałem pewne rozwiązanie (patrz załącznik), które opiera się na wzorcu strategia. Chciałbym spytać czy takie rozwiązanie jest właściwe.

Według mnie nie, ponieważ AlgorithmManager nie jest Algorytmem a pomimo to dziedziczy po nim. Według mnie AlgorithmManager powinien dziedziczyć po jakimś interfejsie np. ManagerInterface.

Chciałbym mimo to spytać o zdanie bardziej doświadczonych programistów. Z góry dziękuję

1

Jeżeli nie chcesz żadnego specjalnego traktowania dla menadżera, to innej opcji nie masz. Musi podszywać się pod algorytm.

Przykład takiego podszywania się pod strategię na własnym przykładzie z niedawna umieszczam w załączniku; (Rysunek poglądowy; Oczka są niezbędnym elementem)

1

Moim zdaniem brakuje tam jeszcze jednej warstwy abstrakcji.

Jeżeli czasem potrzeba od razu "odpalić" odpowiedni algorytm, a czasem wybrać właśćiwy i jego odpalić, to ImplementacjaAlgorytmu nie powinna implementować interfejsu, tylko Managery, i one powinny odpalać właściwy algorytm, nie dziedzicząc też po nim.
Dla potrzeb odpalenia od razu bez wybierania, mozna stworzyc proste klasy managerow, ktore po prostu odpalaja dany jeden algorytm (no wybierają, wybierają ale spośród jednego ;-) ).
Dla reuzywalnosci takiego kodu, można nawet im zrobić klasę bazowa i dopiero w jej implementacji okazywałoby się co dalej. (czy "wybór" jest rzeczywisty, czy spośród jednego algorytmu - czyli odpalenie i tyle).

1

Od kiedy wybór jakiegoś algorytmu jest jego rodzajem?
Ktoś to nieźle skopał.

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