Pola desain apa yang digunakan dalam kerangka Spring?
Jawaban:
Ada banyak pola desain berbeda yang digunakan, tetapi ada beberapa yang jelas:
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.
Foo
dan Anda mengambil instance Foo
per konteks, Anda akan mendapatkan dua referensi objek yang berbeda. Sebaliknya, pola desain yang diterapkan di sini adalah kelas terbang
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.
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.
Observer-Observable: digunakan dalam mekanisme event ApplicationContext
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.
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.