CodeGym/Java Course/Modul 3/Pola Generatif, Bagian 2

Pola Generatif, Bagian 2

Level 16, Pelajaran 3
Tersedia

4.1 Pembangun

Builder adalah pola desain generatif yang menyediakan cara untuk membuat objek komposit.

Memisahkan konstruksi objek yang kompleks dari representasinya sehingga proses konstruksi yang sama dapat menghasilkan representasi yang berbeda.

Pembangun

Kekuatan:

  • memungkinkan Anda mengubah representasi internal produk;
  • mengisolasi kode yang mengimplementasikan konstruksi dan presentasi;
  • memberikan kontrol yang lebih baik atas proses desain.

Sisi lemah:

  • algoritme untuk membuat objek yang kompleks tidak boleh bergantung pada bagian mana objek itu terdiri dan bagaimana mereka cocok satu sama lain;
  • proses konstruksi harus memberikan representasi yang berbeda dari objek yang sedang dibangun.

Contoh yang baik adalah kelas HttpRequest, yang memiliki subkelas HttpRequest.Builder yang dapat digunakan untuk membuat instance kelas HttpRequest dan memastikannya valid.

4.2 Inisialisasi lambat

Inisialisasi malas adalah teknik pemrograman ketika beberapa operasi intensif sumber daya (pembuatan objek, perhitungan nilai) dilakukan segera sebelum hasilnya digunakan.

Jadi, inisialisasi dilakukan "sesuai permintaan", dan bukan sebelumnya. Gagasan serupa menemukan aplikasi di berbagai bidang: misalnya, kompilasi on-the-fly dan konsep logistik Just-in-Time.

Inisialisasi malas

Kasus khusus dari inisialisasi malas - membuat objek pada saat mengaksesnya - adalah salah satu pola desain generatif. Ini biasanya digunakan bersamaan dengan pola seperti Factory Method, Loner, dan Proxy.

Kekuatan:

  • Inisialisasi dilakukan hanya jika benar-benar dibutuhkan;
  • Inisialisasi awal aplikasi dipercepat: segala sesuatu yang dapat ditunda ditunda.

Sisi lemah:

  • Tidak mungkin untuk secara eksplisit mengatur urutan objek yang diinisialisasi;
  • Ada penundaan pada akses pertama ke objek, yang bisa menjadi kritis saat operasi intensif sumber daya lainnya dilakukan secara paralel. Karena itu, perlu mempertimbangkan dengan hati-hati kelayakan penggunaan inisialisasi lambat dalam sistem perangkat lunak multithreaded.

Ingat bagaimana saat menulis web.xml Anda dapat menentukan urutan awal servlet di sana? Inilah akibat dari lazy loading. Tomcat akan membuat objek servlet saat pertama kali diakses.

4.3 kumpulan objek

Kumpulan objek adalah pola desain induk, sekumpulan objek yang diinisialisasi dan siap digunakan. Ketika sistem membutuhkan objek, itu tidak dibuat, tetapi diambil dari kumpulan. Ketika suatu objek tidak lagi dibutuhkan, itu tidak dihancurkan tetapi dikembalikan ke kolam.

kolam objek

Pengumpulan objek digunakan untuk meningkatkan kinerja saat membuat objek di awal pekerjaan dan menghancurkannya di akhir adalah hal yang mahal. Peningkatan kinerja terutama terlihat ketika objek sering dibuat dan dihancurkan, tetapi hanya sejumlah kecil yang ada pada saat yang sama.

Kumpulan objek berguna ketika objek memiliki sumber daya selain memori, seperti soket jaringan. Atau jika kumpulan objek menghabiskan sebagian besar memori komputer dan banyak "sampah" tercipta.

Seperti yang Anda ingat, Tomcat mengeksekusi setiap permintaan di utas terpisah. Tetapi utas tidak dibuat lagi setiap kali, tetapi disimpan di kumpulan utas. Ini memungkinkan eksekusi permintaan yang lebih cepat: ketika sebuah utas dibutuhkan, utas itu diambil dari kumpulan. Ngomong-ngomong, pertanyaannya adalah: bagaimana Anda memasukkan utas yang sedang berjalan ke dalam kolam dan mengambilnya dari kolam?

1
Tugas
Modul 3,  level 16pelajaran 3
Terkunci
All moves are recorded
task4110
1
Tugas
Modul 3,  level 16pelajaran 3
Terkunci
Lazy Proxy
task4111
1
Tugas
Modul 3,  level 16pelajaran 3
Terkunci
Rolling the Ball
task4112
Komentar
  • Populer
  • Baru
  • Lama
Anda harus login untuk memberikan komentar
Halaman ini belum memiliki komentar