Adaptor (Adaptor) minangka pola desain struktur sing dirancang kanggo ngatur panggunaan fungsi obyek sing ora kasedhiya kanggo modifikasi liwat antarmuka sing digawe khusus.
Definisi resmi rada angel, nanging yen sampeyan nulis nganggo tembung sampeyan dhewe, adaptor minangka pola desain sing ngidini obyek kanthi antarmuka sing ora kompatibel bisa digunakake .
Digunakake kanggo ngatur panggunaan fungsi obyek sing ora kasedhiya kanggo modifikasi liwat antarmuka sing digawe khusus. Kelas tambahan digawe sing nduweni antarmuka sing dibutuhake, lan kelas iki uga nelpon metode obyek sing dikarepake (sing ora duwe antarmuka sing dibutuhake).
Penting! Yen ing kode sampeyan ketemu suffix Adaptor kanggo kelas, sampeyan duwe hak kanggo nimbang sing kelas iki tumindak minangka adaptor lan digandhengake karo klompok kelas sing bisa miturut skema kasebut ing ndhuwur.
Iki digunakake ing kasus nalika sistem ndhukung data lan prilaku sing dibutuhake, nanging nduweni antarmuka sing ora cocog. Panggunaan paling umum saka pola Adaptor nalika sampeyan pengin nggawe kelas sing oleh warisan saka kelas abstrak anyar utawa ana.
Kakuwatan:
Transisi kanggo nggunakake kelas njaba liyane ora mbutuhake reworking sistem dhewe, iku cukup kanggo ngleksanakake siji kelas Adapter liyane.
Kamardikan saka implementasine kelas eksternal (kelas saka perpustakaan sing kode ora bisa diganti). Program sampeyan dadi bebas saka antarmuka kelas eksternal.
2.2 Dekorasi
Dekorator minangka pola desain struktural kanggo nempelake prilaku tambahan kanthi dinamis menyang obyek. Pola dekorator menehi alternatif sing apik lan fleksibel kanggo praktik subclassing kanggo nambah fungsi.
Digunakake kanggo nyambungake kewajiban tambahan kanthi dinamis menyang obyek.
Akeh sing bakal takon: kepiye sampeyan bisa kanthi dinamis (nalika program mlaku) nambah prilaku anyar menyang obyek? Obyek bisa dirakit saka potongan, yaiku, obyek cilik. Elinga rantai saringan ing servlets? Utawa Stream API nalika sampeyan nulis pitakonan nggunakake filter (), map (), dhaftar ()?
IntStream.of(50, 60, 70, 80, 90).filter(x -> x < 90).map(x -> x + 10).limit(3).forEach(System.out::print);
Kekuwatan saka pola dekorator:
Ora perlu nggawe subclass kanggo ngluwihi fungsi obyek.
Kemampuan kanggo nyambungake fungsi anyar kanthi dinamis ing ngendi wae: sadurunge utawa sawise fungsi utama obyek ConcreteComponent.
2.3 Proksi
Proxy minangka pola desain struktural sing nyedhiyakake obyek sing ngontrol akses menyang obyek liyane, nyegat lan ngliwati kabeh telpon.
Pola Proxy nyedhiyakake obyek pengganti ing panggonan obyek nyata. Obyek iki ngontrol akses menyang obyek asli. Digunakake asring banget.
Elinga carane kita digunakake framework Mockito lan nyegat telpon kanggo obyek nyata nggunakake cara Mockito.spy () utawa @Spy anotasi? Nalika iku obyek Proxy khusus digawe, liwat kabeh telpon menyang obyek asli liwati.
Banjur kita bisa ngatur telpon kasebut kanthi nambahake aturan menyang obyek kasebut. Bener - obyek asli ora owah, lan nggarap dadi luwih fleksibel. Iku utamané migunani nalika kita ora nelpon obyek proxy saka kode kita, nanging pass nang endi wae. Mangkono ngontrol komunikasi saka rong obyek independen saka kita.
Jinis proxy miturut tujuan:
Proksi logging : nyathet kabeh panggilan menyang "Subjek" kanthi paramèter.
Proksi remot (proksi remot): nyedhiyakake komunikasi karo "Subjek", sing ana ing papan alamat sing beda utawa ing mesin remot. Bisa uga tanggung jawab kanggo ngodhe panyuwunan lan argumentasi lan ngirim panyuwunan sing dienkode menyang "Subjek" sing nyata.
Proksi virtual (proksi virtual): njamin yen "Subjek" sing nyata digawe mung nalika pancen dibutuhake. Sampeyan uga bisa nyimpen sawetara informasi babagan "Subjek" nyata kanggo tundha nggawe.
Copy-on-write : Nyedhiyakake salinan "subyek" nalika klien nindakake tumindak tartamtu (kasus khusus saka "proxy virtual").
Proksi perlindungan : Bisa mriksa manawa panelpon duwe ijin sing dibutuhake kanggo nggawe panjaluk kasebut.
Caching Proxy : Nyedhiyakake panyimpenan sementara asil pitungan sadurunge dilayani menyang sawetara klien sing bisa nuduhake asil.
Screening Proxy: Nglindhungi "Subjek" saka klien mbebayani (utawa kosok balene).
Proxy Sinkronisasi : nindakake kontrol akses sing disinkronake menyang "Subjek" ing lingkungan multi-threaded sing ora sinkron.
Link "Smart" (proxy referensi cerdas): nindakake tindakan tambahan nalika link menyang "Subject" digawe, contone, ngetung jumlah link aktif menyang "Subject".
2.4 Jembatan
Pola Bridge minangka pola desain struktural sing digunakake kanggo "misah abstraksi lan implementasine supaya bisa diganti kanthi mandiri."
Pola jembatan nggunakake enkapsulasi, agregasi, lan bisa nggunakake warisan kanggo nuduhake tanggung jawab antarane kelas.
Nalika abstraksi lan implementasine dipisahake, bisa diganti kanthi mandiri. Ing tembung liya, nalika dileksanakake liwat pola jembatan, ngganti struktur antarmuka ora ngganggu owah-owahan struktur implementasine.
Coba abstraksi kasebut minangka tokoh. Ana macem-macem jinis, saben duwe sifat lan cara dhewe. Nanging, ana sing nyawiji kabeh tokoh. Contone, saben wangun kudu bisa nggambar dhewe, skala, lan liya-liyane.
Ing wektu sing padha, gambar grafis bisa beda-beda gumantung saka jinis OS utawa perpustakaan grafis. Wangun kudu bisa nggambar dhewe ing macem-macem lingkungan grafis. Nanging iku ora praktis kanggo ngleksanakake kabeh cara drawing ing saben wangun, utawa kanggo ngowahi wangun saben-saben cara drawing diganti.
Ing kasus iki, pola jembatan mbantu, ngidini sampeyan nggawe kelas anyar sing bakal ngetrapake gambar ing macem-macem lingkungan grafis. Nggunakake pendekatan iki, gampang banget kanggo nambahake wangun anyar lan cara nggambar.
Sambungan sing diwakili dening panah ing diagram bisa duwe 2 makna: a) "jinis", miturut prinsip substitusi Liskov, lan b) salah sawijining implementasi abstraksi sing bisa ditindakake. Basa biasane nggunakake warisan kanggo ngleksanakake loro a) lan b), sing cenderung nggedhekake hierarki kelas.
Jembatan kasebut persis kanggo ngatasi masalah iki: obyek digawe kanthi pasangan saka obyek saka kelas hirarki A lan hirarki B, warisan ing hirarki A nduweni makna "macem-macem" miturut Liskov, lan kanggo konsep "implementasine". saka abstraksi" pranala saka obyek A menyang obyek sing dipasangake B digunakake.
2.5 Fasad
Pola Fasad minangka pola desain struktural sing ndhelikake kerumitan sistem kanthi nyuda kabeh panggilan eksternal sing bisa ditindakake menyang obyek siji sing utusan menyang obyek sing cocog ing sistem kasebut.
Carane nyedhiyani antarmuka terpadu karo pesawat saka implementasine beda utawa antarmuka, contone, kanggo subsistem, yen kopling kuwat kanggo subsistem sing undesirable, utawa implementasine saka subsistem bisa ngganti?
Netepake siji titik interaksi karo subsistem - obyek fasad sing nyedhiyakake antarmuka umum karo subsistem, lan nemtokake tanggung jawab kanggo sesambungan karo komponen. Fasad minangka obyek eksternal sing nyedhiyakake titik entri siji kanggo layanan subsistem.
Implementasi komponen subsistem liyane pribadi lan ora katon kanggo komponen eksternal. Obyek fasad nyedhiyakake implementasine saka pola GRASP Tahan kanggo owah-owahan ing syarat-syarat pangayoman marang owah-owahan ing implementasine saka subsistem.
Penting! Pola iki digunakake nalika kita pengin ndhelikake sawetara klompok obyek lan ngliwati kabeh komunikasi karo obyek kasebut. Yen sampeyan mung pengin nyedhiyani sawetara kontrol liwat proses komunikasi obyek lan ora kudu ndhelikake, iku luwih apik kanggo nggunakake pola Proxy.
Sadurunge wulangan sadurunge
Sabanjure wulangan sabanjuré
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
sinau
Registrasi
Kursus Jawa
Bantuan karo Tugas
pricing
Proyek Game
Sintaksis Jawa
Masyarakat
Pangguna
Artikel
Forum
Ngobrol
Kisah Sukses
Kegiatan
Program Afiliasi
Perusahaan
Babagan awake dhewe
Kontak
Ulasan
Ruang Pers
CodeGym kanggo EDU
FAQ
Nyokong
CodeGym minangka kursus online kanggo sinau pemrograman Java wiwit wiwitan. Kursus iki minangka cara sing sampurna kanggo nguasai Java kanggo pamula. Isine luwih saka 1200 tugas kanthi verifikasi cepet lan ruang lingkup teori dhasar Jawa. Kanggo mbantu sampeyan sukses ing pendhidhikan, kita wis ngetrapake sawetara fitur motivasi: kuis, proyek coding, konten babagan sinau sing efisien lan karir pangembang Jawa.
Tindakake kita
Basa antarmuka
Basa Jawa
Programmer Digawe, Ora Lair © 2023 CodeGym
Unduh App
Programmer Digawe, Ora Lair © 2023 CodeGym
Situs web iki nggunakake cookie kanggo nyedhiyakake layanan pribadi. Kanthi nggunakake situs web iki, sampeyan setuju kanggo nggunakake cookie. Yen sampeyan mbutuhake rincian liyane, waca Katentuan lan Kebijakan.