2009-11-16 15 views

Odpowiedz

7

Ponieważ niektóre elementy implementują strategie, "sposoby osiągnięcia czegoś".

Punkt wzorca strategii polega na umożliwieniu wyboru sposobu działania, "strategii" w czasie wykonywania.

Nazwa nie odnosi się do wzorca jako całości, odnosi się do obiektów we wzorcu, który wykonuje akcje.

+1

Brzmi bardziej jak "taktyka" w tym momencie, nie? Czy "strategia" nie implikuje większego "wzorcowego planu" - podobnego paradygmatu? – jldupont

+0

@jldupont: Nie obwiniaj mnie, nie nazwałem tego! :-) – RichieHindle

+0

Tak, ale tak wiele z nich robi, fabryka na przykład ... – Peter

7

Ideą wzorca strategii jest to, że "algorytmy można wybierać w środowisku wykonawczym." (Wikipedia, Strategy Pattern) Wzorzec, w istocie, polega na wybraniu odpowiedniej strategii (lub zachowania) w celu rozwiązania konkretnego problemu w czasie wykonywania. Dlatego jest to imię.

+0

Czuje się bardziej odpowiednią definicją niż ta podana przez @RichieHindle. – jldupont

4

To prawda, że ​​wszystkie wzorce są "strategiami" do projektowania aplikacji. Wzorzec strategii wymaga jednak złożonej logiki, algorytmów itp. I hermetyzuje go. Który oczyszcza twój kod, a także pozwala stosować różne strategie w zależności od różnych warunków.

Przykł. Napisałem skomplikowaną kalkulację odsetek dla Zabezpieczenia, a zamiast faktycznego posiadania kalkulacji wewnątrz klasy Zabezpieczenia przeniosłem ją do klasy Odsetki (strategia). Potem, kiedy zaczęli mi powtarzać, obliczenia muszą być inne, ponieważ obliczenia stopy procentowej były zgodne z interfejsem IInterestCalculation, mogłem zmienić i utworzyć nowe obliczenia tak bardzo, jak potrzebowałem, a klasa Zabezpieczeń pozostała niezmieniona ...

Powiązane problemy