4.1 Pembina
Builder minangka pola desain generatif sing nyedhiyakake cara kanggo nggawe obyek komposit.
Misahake konstruksi obyek sing kompleks saka perwakilane supaya proses konstruksi sing padha bisa ngasilake perwakilan sing beda.
Kakuwatan:
- ngidini sampeyan ngganti perwakilan internal produk;
- ngisolasi kode sing ngleksanakake konstruksi lan presentasi;
- menehi kontrol nggoleki liwat proses desain.
Sisih lemah:
- algoritma kanggo nggawe obyek Komplek ngirim ora gumantung ing bagean saka obyek lan carane padha pas bebarengan;
- proses construction kudu nyedhiyani perwakilan beda saka obyek sing dibangun.
Conto sing apik yaiku kelas HttpRequest, sing nduweni subclass HttpRequest.Builder sing bisa digunakake kanggo nggawe conto kelas HttpRequest lan mesthekake yen bener.
4.2 Initialization puguh
Lazy initialization minangka teknik pemrograman nalika sawetara operasi intensif sumber daya (nggawe obyek, pitungan nilai) ditindakake sadurunge asile digunakake.
Mangkono, initialization ditindakake "on demand", lan ora sadurunge. Ide sing padha nemokake aplikasi ing macem-macem wilayah: contone, kompilasi on-the-fly lan konsep logistik Just-in-Time.
Kasus khusus saka initialization malas - nggawe obyek nalika ngakses - minangka salah sawijining pola desain generatif. Biasane digunakake bebarengan karo pola kayata Metode Pabrik, Loner, lan Proxy.
Kakuwatan:
- Inisialisasi ditindakake mung nalika pancen dibutuhake;
- Inisialisasi awal aplikasi digawe cepet: kabeh sing bisa ditundha ditundha.
Sisih lemah:
- Ora bisa kanthi jelas nyetel urutan obyek sing diinisialisasi;
- Ana wektu tundha ing akses pisanan kanggo obyek, kang bisa kritis nalika operasi sumber-intensif liyane dileksanakake ing podo karo. Amarga iki, perlu kanggo nimbang kanthi teliti kesesuaian nggunakake initialization kesed ing sistem piranti lunak multithreaded.
Elinga kepiye nalika nulis web.xml sampeyan bisa nemtokake urutan wiwitan servlet ing kana? Iki persis asil loading kesed. Tomcat bakal nggawe obyek servlet nalika pisanan diakses.
4.3 Kolam obyek
Kolam obyek minangka pola desain induk, sakumpulan obyek sing wis diwiwiti lan siap digunakake. Nalika sistem perlu obyek, iku ora digawe, nanging dijupuk saka blumbang. Nalika obyek ora perlu maneh, iku ora numpes nanging bali menyang blumbang.
Obyek pooling digunakake kanggo nambah kinerja nalika nggawe obyek ing wiwitan proyek lan ngrusak ing mburi iku larang. Peningkatan kinerja utamane katon nalika obyek digawe lan kerep dirusak, nanging mung sawetara sing ana ing wektu sing padha.
Kolam obyek migunani nalika obyek duwe sumber daya liyane saka memori, kayata soket jaringan. Utawa yen koleksi obyek njupuk munggah bagean pinunjul saka memori komputer lan akèh "sampah" digawe.
Nalika sampeyan ngelingi, Tomcat nglakokake saben panjaluk ing thread sing kapisah. Nanging Utas ora digawe saben wektu anew, nanging disimpen ing blumbang Utas. Iki ngidini eksekusi panjalukan sing luwih cepet: yen benang dibutuhake, mung dijupuk saka blumbang. Miturut cara, pitakonan iki: carane sampeyan bakal sijine thread mlaku menyang blumbang lan njupuk saka blumbang?
GO TO FULL VERSION