CodeGym/Kursus Java/Modul 3/Corak Generatif, Bahagian 2

Corak Generatif, Bahagian 2

Tahap, pelajaran
Tersedia

4.1 Pembina

Pembina ialah corak reka bentuk generatif yang menyediakan cara untuk mencipta objek komposit.

Mengasingkan pembinaan objek kompleks daripada perwakilannya supaya proses pembinaan yang sama boleh menghasilkan perwakilan yang berbeza.

pembina

Kekuatan:

  • membolehkan anda menukar perwakilan dalaman produk;
  • mengasingkan kod yang melaksanakan pembinaan dan pembentangan;
  • memberikan kawalan yang lebih halus ke atas proses reka bentuk.

Sisi lemah:

  • algoritma untuk mencipta objek yang kompleks tidak harus bergantung pada bahagian yang terdiri daripada objek dan cara ia sesuai bersama;
  • proses pembinaan mesti memberikan gambaran yang berbeza bagi objek yang dibina.

Contoh yang baik ialah kelas HttpRequest, yang mempunyai subkelas HttpRequest.Builder yang boleh digunakan untuk mencipta contoh kelas HttpRequest dan memastikan ia sah.

4.2 Inisialisasi malas

Inisialisasi malas ialah teknik pengaturcaraan apabila beberapa operasi intensif sumber (penciptaan objek, pengiraan nilai) dilakukan serta-merta sebelum keputusannya digunakan.

Oleh itu, permulaan dilakukan "atas permintaan", dan bukan terlebih dahulu. Idea yang serupa mendapat aplikasi dalam pelbagai bidang: contohnya, kompilasi on-the-fly dan konsep logistik Just-in-Time.

Inisialisasi malas

Kes khas pemula malas - mencipta objek pada masa mengaksesnya - ialah salah satu corak reka bentuk generatif. Ia biasanya digunakan bersama dengan corak seperti Kaedah Kilang, Loner dan Proksi.

Kekuatan:

  • Permulaan dilakukan hanya apabila ia benar-benar diperlukan;
  • Inisialisasi awal aplikasi dipercepatkan: semua yang boleh ditangguhkan ditangguhkan.

Sisi lemah:

  • Ia tidak mungkin untuk menetapkan secara eksplisit susunan objek dimulakan;
  • Terdapat kelewatan pada akses pertama kepada objek, yang boleh menjadi kritikal apabila operasi intensif sumber lain dilakukan secara selari. Oleh sebab itu, adalah perlu untuk mempertimbangkan dengan teliti kesesuaian menggunakan pengamulaan malas dalam sistem perisian berbilang benang.

Ingat bagaimana semasa menulis web.xml anda boleh menentukan susunan permulaan servlet di sana? Ini betul-betul akibat malas memuatkan. Tomcat akan mencipta objek servlet pada kali pertama ia diakses.

4.3 Kumpulan objek

Kumpulan objek ialah corak reka bentuk induk, satu set objek yang dimulakan dan sedia untuk digunakan. Apabila sistem memerlukan objek, ia tidak dicipta, tetapi diambil dari kolam. Apabila objek tidak lagi diperlukan, ia tidak dimusnahkan tetapi dikembalikan ke kolam.

kolam objek

Pengumpulan objek digunakan untuk meningkatkan prestasi apabila mencipta objek pada permulaan kerja dan memusnahkannya pada akhir adalah mahal. Peningkatan prestasi amat ketara apabila objek dicipta dan dimusnahkan dengan kerap, tetapi hanya sebilangan kecil daripadanya wujud pada masa yang sama.

Kumpulan objek berguna apabila objek memiliki sumber selain memori, seperti soket rangkaian. Atau jika pengumpulan objek mengambil sebahagian besar memori komputer dan banyak "sampah" dicipta.

Seperti yang anda ingat, Tomcat melaksanakan setiap permintaan dalam urutan yang berasingan. Tetapi benang tidak dibuat setiap kali baharu, tetapi disimpan dalam kumpulan benang. Ini membolehkan pelaksanaan permintaan yang lebih pantas: apabila benang diperlukan, ia hanya diambil dari kolam. Ngomong-ngomong, persoalannya ialah: bagaimana anda meletakkan benang larian ke dalam kolam dan mengambilnya dari kolam?

1
Tugasan
Modul 3,  tahappelajaran
Terkunci
All moves are recorded
task4110
1
Tugasan
Modul 3,  tahappelajaran
Terkunci
Lazy Proxy
task4111
1
Tugasan
Modul 3,  tahappelajaran
Terkunci
Rolling the Ball
task4112
Komen
  • Popular
  • Baru
  • Tua
Anda mesti log masuk untuk meninggalkan ulasan
Halaman ini tidak mempunyai sebarang ulasan lagi