Bahar çerçevesinde hangi tasarım desenleri kullanılıyor? [kapalı]


90

Bahar çerçevesinde hangi tasarım desenleri kullanılıyor?


..MVC, Ön denetleyici, Görüntü Yardımcısı, Tekli, Prototip, Fabrika vb. Dahil 10'dan fazla desen içerir. javabench.in/2012/02/design-patterns-being-used-in-spring.html
Raúl

Yanıtlar:


74

Kullanılan çok sayıda farklı tasarım modeli vardır, ancak birkaç bariz olanı vardır:

  • Proxy - AOP'de ve uzaktan kullanımda yoğun olarak kullanılır .

  • Singleton - bahar yapılandırma dosyalarında tanımlanan fasulye varsayılan olarak tek tondur.

  • Şablon yöntemi - yaygın olarak tekrarlanan standart kodla uğraşmak için kullanılır (bağlantıların temiz bir şekilde kapatılması vb.). Örneğin JdbcTemplate , JmsTemplate , JpaTemplate .


Aşağıdaki yorumları güncelleyin: MVC için, MVC Referansını okumak isteyebilirsiniz

MVC'de kullanılan bazı belirgin modeller:

  • Model Görünümü Denetleyicisi :-). Spring MVC'nin avantajı, denetleyicilerinizin sunucu uygulamaları yerine POJO'lar olmasıdır. Bu, kontrolörlerin daha kolay test edilmesini sağlar. Unutulmaması gereken bir nokta, denetleyicinin yalnızca mantıksal bir görünüm adı döndürmesi gerektiği ve görünüm seçiminin ayrı bir ViewResolver'a bırakılmasıdır . Bu, farklı görüntüleme teknolojileri için denetleyicileri yeniden kullanmayı kolaylaştırır.

  • Ön Kontrolör . Spring, gelen bir isteğin denetleyicilerinize gönderilmesini sağlamak için DispatcherServlet sağlar .

  • Yardımcıyı Görüntüle - Spring, kodun görünümlerde sunumdan ayrılmasına yardımcı olmak için bir dizi özel JSP etiketine ve hız makrolarına sahiptir.


Teşekkürler, Spring MVC modülünde kullanılan tasarım modelleri nelerdir?
Tony

10
Baharın fasulyeler için singleton uyguladığını sanmıyorum. Tek kapsama sahip bir çekirdeğin uygulama içeriği başına tek bir örneğe sahip olacağını unutmayın . Bu nedenle, uygulamanızın iki Spring bağlamı varsa, bunlar aynı tekil çekirdeği yükler Foove Foobağlam başına örneğini alırsanız, iki farklı nesne referansı alırsınız. Bunun yerine, tasarım kalıbıdır burada uygulanan Flyweight
Luiggi Mendoza

@Luiggi Mendoza, baharda tek nesnelerin olmadığını mı söylüyorsunuz? lütfen bana biraz açıklama ile açıklayın.
Kumaresan Perumal

1
@KumaresanPerumal, Singleton modeli ile singleton örneği arasında önemli bir fark vardır (büyük / küçük S'ye dikkat edin). Tekil desen, tüm uygulama boyunca nesnenin tek bir örneğini korumakla ilgilidir. Spring'in bir singleton bean tespit ederken yaptığı şey, uygulama bağlamı başına tek bir örnek oluşturmaktır . Uygulama bağlamı, Spring'in temel bileşenidir ve nesnelerin oluşturulmasını ve alınmasını temsil etmeye hizmet eder. Tekli fasulye, uygulama içeriği başına yalnızca bir kez oluşturulur.
Luiggi Mendoza

Model görünüm denetleyicisi, ön denetleyici ve görünüm bağlantıları oracle.com/technetwork/java/index.html adresine götürülmesine yardımcı oldu . Yanıtı çalışan bir bağlantıyla günceller misiniz?
SpringLearner

12

Ve tabii ki, tüm BeanFactory / ApplicationContext öğelerinin merkezi olan bağımlılık enjeksiyonu veya IoC (kontrolün ters çevrilmesi).


10

DI olayı aslında bir tür strateji modelidir. Ne zaman bir mantık / uygulama değiş tokuşu yapmak isterseniz, o arabirimin özel uygulamanızı bağlamak için ana bilgisayar sınıfında tipik olarak bir arabirim ve uygun bir ayarlayıcı yöntemi bulursunuz.


Ustanın kendisinden cevap. @Oliver burada daha fazla kalıp belirtebilir misin?
Gaurav

7

Spring, en iyi uygulama API kalıplarının bir koleksiyonudur, kolunuzun olduğu sürece bunlardan bir alışveriş listesi yazabilirsiniz. API'nin tasarlanma şekli sizi bu kalıpları takip etmeye teşvik eder (ancak sizi zorlamaz) ve bunu yaptığınızı bilmeden bunları takip ettiğiniz zamanın yarısında.


3

Servis Bulucu Modeli - ServiceLocatorFactoryBean, bağlam içinde tüm çekirdeklerle ilgili bilgileri tutar. İstemci kodu, adı kullanarak bir hizmet (bean) istediğinde, o çekirdeği bağlamda bulur ve döndürür. Müşteri kodunun bir fasulyenin yerini tespit etmek için yayla ilgili kod yazmasına gerek yoktur.


2

Observer-Observable: ApplicationContext'in olay mekanizmasında kullanılır


1

Fabrika deseni, BeanFactory ve Uygulama bağlamı aracılığıyla fasulye yüklemek için de kullanılır.


1

Fabrika Yöntemi pıtırtı: Bir nesnenin örneğini oluşturmak için BeanFactory Singleton: örnek türü bir bağlam için tekli olabilir Prototip: örnek türü prototip olabilir. Oluşturucu kalıbı: Bir sınıfta, karmaşık örnek oluşturmaktan sorumlu olacak bir yöntem de tanımlayabilirsiniz.


0

Yaylı kap, fasulye kapsamına göre (tekli, prototip vb.) Fasulye nesneleri üretir. Bu, Soyut Fabrika modelini uygulamaya benziyor . Baharın dahili uygulamasında, her kapsamın belirli bir fabrika türü sınıfına bağlanması gerektiğinden eminim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.