Quali schemi di progettazione vengono utilizzati nel framework Spring?Quali schemi di progettazione vengono utilizzati nel framework Spring?
risposta
Ci sono un sacco di diversi modelli di progettazione utilizzati, ma ci sono alcune fra le più ovvie:
Singleton - i bean definiti nei file di configurazione di primavera sono singleton per impostazione predefinita.
Metodo modello: ampiamente utilizzato per gestire codici ripetuti di piastre (ad es. Collegamenti di chiusura puliti, ecc.). Ad esempio JdbcTemplate, JmsTemplate, JpaTemplate.
Aggiornamento commenti: Per MVC, si potrebbe desiderare di leggere il MVC Reference
Alcuni modelli evidenti in uso in MVC:
Model View Controller :-). Il vantaggio con Spring MVC è che i controller sono POJO anziché servlet. Questo facilita il test dei controller. Una cosa da notare è che al controller è richiesto solo di restituire un nome di vista logico e la selezione della vista è lasciata a un numero di ViewResolver separato. Ciò semplifica il riutilizzo dei controller per le diverse tecnologie di visualizzazione.
Front Controller. Spring fornisce DispatcherServlet per garantire che una richiesta in arrivo venga inviata ai controller.
View Helper - Spring ha un numero di tag JSP personalizzati e macro di velocità, per facilitare la separazione del codice dalla presentazione nelle viste.
Grazie, Quali sono gli schemi di progettazione utilizzati nel modulo MVC di Spring? – Tony
Non penso che Spring implementa il singleton per i fagioli. Si noti che un bean con scope singleton avrà una singola istanza ** per contesto applicativo **. Quindi, se la tua applicazione ha due contesti Spring, caricano uno stesso bean singleton 'Foo' e recuperi l'istanza di' Foo' per contesto, otterrai due riferimenti a oggetti diversi. Invece, il modello di progettazione qui applicato è [flyweight] (http://en.wikipedia.org/wiki/Flyweight_pattern) –
@Luiggi Mendoza vuoi dire che la primavera non ha oggetti singoli? per favore spiegami con qualche chiarimento –
E di iniezione di dipendenza naturalmente, o IOC (inversione di controllo), che è al centro dell'intero roba BeanFactory/ApplicationContext.
Spring è una raccolta di modelli di API best-practice, è possibile scrivere una lista della spesa di loro purché il braccio. Il modo in cui è progettata l'API ti incoraggia (ma non ti obbliga) a seguire questi schemi e metà del tempo in cui li segui senza sapere che lo stai facendo.
La cosa DI è in realtà una sorta di modello di strategia. Ogni volta che vuoi essere un po 'logico/implementabile scambiabile, in genere trovi un'interfaccia e un metodo setter appropriato nella classe host per collegare l'implementazione personalizzata di tale interfaccia.
Il modello di fabbrica viene anche utilizzato per caricare i fagioli attraverso il contesto BeanFactory e Application.
Factory Method patter: BeanFactory per creare un'istanza di un oggetto Singleton: Tipo esempio può essere singleton per un contesto prototipo: Tipo esempio può essere prototipo. Schema costruttore: puoi anche definire un metodo in una classe che sarà responsabile della creazione di un'istanza complessa.
Observer osservabili: è usato in caso di meccanismo di ApplicationContext
contenitore primavera genera oggetti di fagioli a seconda del campo di applicazione di fagioli (Singleton, prototipo, ecc ..). Quindi questo sembra implementare Abstract Factory pattern. Nell'implementazione interna della primavera, sono sicuro che ogni ambito dovrebbe essere associato a una specifica classe di fabbrica.
Modello localizzatore di servizio - ServiceLocatorFactoryBean mantiene le informazioni di tutti i bean nel contesto. Quando il codice client richiede un servizio (bean) usando il nome, esso semplicemente individua quel bean nel contesto e lo restituisce. Il codice cliente non ha bisogno di scrivere codice relativo alla molla per localizzare un bean.
- 1. Modelli di progettazione utilizzati nel framework .NET?
- 2. quali sono gli schemi di progettazione utilizzati in Android?
- 3. Quali framework di test vengono utilizzati per Rails?
- 4. Quali tipi di documenti di progettazione scritti vengono utilizzati nei progetti DDD?
- 5. Motivi di progettazione utilizzati nel codice JavaScript di Gmail?
- 6. Quali pacchetti cabala non vengono utilizzati
- 7. Quali schemi di progettazione vengono maggiormente sfruttati nella creazione di applicazioni ad alta disponibilità?
- 8. Quali framework PHP sono utilizzati dalle aziende?
- 9. Quali modelli di progettazione software presentano i framework GUI comuni?
- 10. PacMan: quali tipi di euristica vengono principalmente utilizzati?
- 11. Quali schemi di progettazione possono essere applicati al problema delle impostazioni di configurazione?
- 12. Come determinare quali database vengono utilizzati su SQL Server 2000
- 13. Quali sono i modelli di progettazione di servizi Windows comuni?
- 14. Esistono schemi generali per la progettazione di classi per i database di schemi in .NET?
- 15. Scopri quali stili CSS vengono utilizzati su una determinata pagina
- 16. Gioca! framework: personalizzare quali test vengono eseguiti
- 17. Modelli di progettazione utilizzati nella libreria jQuery
- 18. Il linguaggio procedurale ha schemi di progettazione?
- 19. Quali schemi di progettazione dovrei imparare prima di avviare lo sviluppo Android
- 20. Uso effettivo del modello di progettazione nel software open source?
- 21. Quali sono gli idiomi C++ utilizzati dai programmatori C++?
- 22. Schemi e algoritmi di progettazione per applicare regole ai fatti
- 23. Perché vengono utilizzati i campi nascosti?
- 24. Quali sono alcuni schemi di progettazione per eseguire il controllo della versione di un oggetto?
- 25. Quali sono i buoni schemi di progettazione leggeri per evitare i nulli in Java?
- 26. Se ho poco tempo per imparare alcuni schemi di progettazione, quali dovrei imparare?
- 27. Quali appendici dovrebbero essere utilizzati nel sistema distribuito? Come configurarli?
- 28. Quali classi e funzioni C# possono essere utilizzati nel rasoio?
- 29. Schemi di database non validi nel mondo reale
- 30. Dove si trova la documentazione per gli interni di Qt e gli schemi di progettazione utilizzati per costruirlo
Include più di 10 modelli, tra cui ..MVC, Front controller, Visualizza Helper, Singleton, Prototype, Factory ecc. http://www.javabench.in/2012/02/design-patterns-being-used-in-spring.html –
Design Pattern - Pattern MVC, Pattern Proxy, Pattern di fabbrica, Pattern Singleton, Pattern metodo Pattern, Modello di FrontController, Visualizza modello di supporto, Mototipo PatternDI/Motivo IOC. Riferimento: http: //javainuse.com/spring/spring-design-patterns – Gordan