Jakie wzorce są używane w ramach Spring Framework?Jakie wzorce są używane w ramach Spring Framework?
Odpowiedz
Istnieje wiele różnych wzorców projektowych używanych, ale istnieje kilka oczywistych:
Singleton - fasola zdefiniowana w wiosennych plikach konfiguracyjnych domyślnie jest singletonami.
Metoda szablonowa - stosowana szeroko w celu radzenia sobie z powtarzającym się kodem standardowym (np. Zamykanie połączeń w sposób czysty itp.). Na przykład: JdbcTemplate, JmsTemplate, JpaTemplate.
Aktualizacja następujące uwagi: Na MVC, może chcesz przeczytać MVC Reference
pewne oczywiste wzorce użytkowania w MVC:
Model View Controller :-). Zaletą Spring MVC jest to, że twoje kontrolery są POJO w przeciwieństwie do serwletów. To ułatwia testowanie kontrolerów. Należy zwrócić uwagę, że kontroler musi tylko zwrócić logiczną nazwę widoku, a wybór widoku pozostawić osobnemu ViewResolver. Ułatwia to ponowne wykorzystanie kontrolerów dla różnych technologii przeglądania.
Front Controller. Spring zapewnia DispatcherServlet, aby upewnić się, że przychodzące żądanie zostanie wysłane do kontrolerów.
View Helper - Wiosna ma wiele niestandardowych znaczników JSP i makr prędkości, aby pomóc w oddzieleniu kodu od prezentacji w widokach.
Dzięki, Jakie są wzorce projektowe używane w module Spring MVC? – Tony
Nie sądzę, że Spring implementuje singleton dla fasoli. Zauważ, że komponent o pojedynczej skali ma jedną instancję ** dla każdego kontekstu aplikacji **. Tak więc, jeśli twoja aplikacja ma dwa konteksty Spring, ładują one ten sam singleton bean 'Foo' i pobierasz instancję' Foo' na kontekst, otrzymasz dwa różne odniesienia do obiektów. Zamiast tego zastosowany tutaj wzór to [flyweight] (http://en.wikipedia.org/wiki/Flyweight_pattern) –
@Luiggi Mendoza masz na myśli to, że wiosna nie ma obiektów singleton? proszę wyjaśnij mi pewne wyjaśnienie. –
I oczywiście wtrysk zależności lub IoC (inwersja kontroli), która jest kluczowa dla całej rzeczy BeanFactory/ApplicationContext.
Wiosna to zbiór wzorców API najlepszych praktyk, możesz zapisać listę zakupów tak długo, jak ramię. Sposób, w jaki interfejs API jest zaprojektowany, zachęca Cię (ale nie zmusza) do podążania za tymi wzorami, a połowę czasu, kiedy podążasz za nimi, nie wiedząc, że to robisz.
Rzeczy typu DI to rodzaj wzorca strategii. Ilekroć chcesz być wymienianą logiką/implementacją, zazwyczaj znajdujesz interfejs i odpowiednią metodę ustawiającą na klasie hosta, aby łączyć niestandardową implementację tego interfejsu.
Fabryczny wzór jest również używany do ładowania fasoli przez kontekst fasoli i aplikacji.
Metoda Factory patter: BeanFactory do tworzenia instancji obiektu Singleton: typ instancji może być pojedyncza dla kontekstu Prototyp: typ instancji może być prototypem. Wzorzec konstruktora: można również zdefiniować metodę w klasie, która będzie odpowiedzialna za tworzenie złożonej instancji.
obserwatora Obserwowalne: jest stosowany mechanizm zdarzeń ApplicationContext w
Wiosna pojemnik wytwarza przedmiotów fasoli w zależności od zakresu fasoli (Singleton prototyp itp ..). Wygląda to na implementację Abstract Factory pattern. W wewnętrznej implementacji Wiosennej jestem pewien, że każdy zakres powinien być powiązany z konkretną klasą fabryczną.
Wzorzec lokalizatora usługi - ServiceLocatorFactoryBean przechowuje informacje o wszystkich ziarnach w kontekście. Gdy kod klienta prosi o usługę (komponent bean) za pomocą nazwy, po prostu lokalizuje tę fasolę w kontekście i zwraca ją. Kod klienta nie musi zapisywać kodu źródłowego, aby zlokalizować komponent bean.
Zawiera więcej niż 10 wzorów, w tym ..MVC, kontroler czołowy, Zobacz pomocnika, Singleton, prototyp, fabryka itp. http://www.javabench.in/2012/02/design-patterns-being-used-in-spring.html –
Wzory projektowe - Wzorzec MVC, Wzorzec proxy, Wzorzec fabryczny, Wzór jednolity, Wzór metody szablonu, FrontController Pattern, View Helper Pattern, Prototype PatternDI/IOC Pattern. Odniesienie-http: //javainuse.com/spring/spring-design-patterns – Gordan