Pola desain apa yang digunakan dalam kerangka Spring?
design-patterns
spring
Tony
sumber
sumber
Jawaban:
Ada banyak pola desain berbeda yang digunakan, tetapi ada beberapa yang jelas:
Proxy - banyak digunakan di AOP , dan remoting .
Singleton - beans yang ditentukan dalam file konfigurasi musim semi adalah singletons secara default.
Metode template - digunakan secara ekstensif untuk menangani kode berulang boilerplate (seperti menutup koneksi dengan rapi, dll ..). Misalnya JdbcTemplate , JmsTemplate , JpaTemplate .
Perbarui komentar berikut: Untuk MVC, Anda mungkin ingin membaca Referensi MVC
Beberapa pola yang jelas digunakan di MVC:
Model View Controller :-). Keuntungan dengan Spring MVC adalah bahwa pengontrol Anda adalah POJO dan bukan servlet. Hal ini mempermudah pengujian pengontrol. Satu hal yang perlu diperhatikan adalah bahwa pengontrol hanya diperlukan untuk mengembalikan nama tampilan logis, dan pilihan tampilan diserahkan ke ViewResolver terpisah . Ini membuatnya lebih mudah untuk menggunakan kembali pengontrol untuk teknologi tampilan yang berbeda.
Kontroler Depan . Spring menyediakan DispatcherServlet untuk memastikan permintaan masuk dikirim ke pengontrol Anda.
View Helper - Spring memiliki sejumlah tag JSP kustom, dan makro kecepatan, untuk membantu memisahkan kode dari presentasi dalam tampilan.
sumber
Foo
dan Anda mengambil instanceFoo
per konteks, Anda akan mendapatkan dua referensi objek yang berbeda. Sebaliknya, pola desain yang diterapkan di sini adalah kelas terbangDan tentu saja injeksi ketergantungan, atau IoC (inversi kontrol), yang merupakan pusat dari keseluruhan hal BeanFactory / ApplicationContext.
sumber
Hal DI sebenarnya adalah semacam pola strategi. Kapan pun Anda ingin menggunakan beberapa logika / implementasi yang dapat dipertukarkan, Anda biasanya menemukan antarmuka dan metode penyetel yang sesuai pada kelas host untuk menghubungkan implementasi khusus Anda dari antarmuka itu.
sumber
Spring adalah kumpulan pola API praktik terbaik, Anda dapat menulis daftar belanjanya selama lengan Anda. Cara API dirancang mendorong Anda (tetapi tidak memaksa Anda) untuk mengikuti pola-pola ini, dan separuh waktu Anda mengikutinya tanpa mengetahui Anda sedang melakukannya.
sumber
Pola Lokasi Layanan - ServiceLocatorFactoryBean menyimpan informasi dari semua kacang dalam konteksnya. Ketika kode klien meminta layanan (kacang) menggunakan nama, itu hanya menempatkan kacang itu dalam konteks dan mengembalikannya. Kode klien tidak perlu menulis kode terkait musim semi untuk menemukan kacang.
sumber
Observer-Observable: digunakan dalam mekanisme event ApplicationContext
sumber
Pola pabrik juga digunakan untuk memuat biji melalui konteks BeanFactory dan Aplikasi.
sumber
Pola Pabrik Metode: BeanFactory untuk membuat contoh objek Singleton: jenis contoh dapat tunggal untuk konteks Prototipe: jenis contoh dapat menjadi prototipe. Pola pembangun: Anda juga dapat menentukan metode di kelas yang akan bertanggung jawab untuk membuat instance kompleks.
sumber
Wadah pegas menghasilkan objek kacang tergantung pada ruang lingkup kacang (tunggal, prototipe dll ..). Jadi ini terlihat seperti menerapkan pola Pabrik Abstrak . Dalam implementasi internal Spring, saya yakin setiap ruang lingkup harus dikaitkan dengan kelas jenis pabrik tertentu.
sumber