Definisi: Pola pabrik abstrak menyediakan antarmuka untuk menciptakan keluarga objek terkait atau dependen tanpa menentukan kelas konkretnya. Pola ini sangat berguna ketika suatu sistem perlu tidak tergantung pada bagaimana produk -produknya dibuat, disusun, dan diwakili.
Contoh Penggunaan: Bayangkan mengembangkan perangkat lunak simulasi yang dapat mewakili lingkungan yang berbeda (darat, laut, udara). Dengan menggunakan pola pabrik abstrak, Anda dapat mendefinisikan antarmuka pabrik dengan metode untuk membuat berbagai jenis hewan dan tumbuhan, dan kemudian menerapkan berbagai pabrik konkret untuk setiap lingkungan, masing -masing mengetahui cara membuat objek yang spesifik untuk lingkungan itu.
Definisi: Pola metode pabrik mendefinisikan antarmuka untuk membuat objek tetapi memungkinkan subclass memutuskan kelas mana yang akan disesuaikan. Pola ini mendelegasikan tanggung jawab instantiasi objek ke subkelas, mempromosikan kopling longgar.
Contoh Penggunaan: Aplikasi manajemen dokumen dapat menggunakan metode pabrik untuk membuat berbagai jenis dokumen (teks, grafik, presentasi). Setiap jenis dokumen akan memiliki kelas konkretnya, dan metode pabrik di kelas dasar akan memutuskan dokumen mana yang akan dibuat berdasarkan input pengguna, sehingga mengisolasi kode klien dari kelas dokumen konkret.
Definisi: Pola pembangun memisahkan konstruksi objek kompleks dari representasinya, memungkinkan konstruksi yang sama untuk representasi yang berbeda. Pola ini berguna ketika suatu objek perlu dibuat dalam beberapa langkah, dan proses konstruksi harus sama untuk representasi yang berbeda.
Contoh Penggunaan: Pertimbangkan pembangun mobil yang dapat membuat berbagai jenis mobil (olahraga, SUV, convertible). Menggunakan pembangun, proses konstruksi mobil -mobil ini dapat distandarisasi ke dalam langkah yang berbeda (sasis bangunan, mesin, interior) sementara detail spesifik dari setiap jenis mobil ditangani melalui berbagai pembangun beton.
Definisi: Pola rantai tanggung jawab memungkinkan melewati permintaan di sepanjang rantai penangan. Setiap penangan memutuskan apakah akan memproses permintaan atau meneruskannya ke penangan berikutnya dalam rantai.
Contoh Penggunaan: Dalam sistem helpdesk, permintaan dukungan dapat melewati berbagai tingkat dukungan teknis. Setiap level memeriksa permintaan dan memutuskan apakah itu dapat menanganinya atau meneruskannya ke level berikutnya. Ini menghindari menggabungkan pengirim permintaan dengan penerima spesifik dan mendistribusikan tanggung jawab di antara berbagai objek.
Definisi: Pola perintah mengubah permintaan menjadi objek independen yang berisi semua informasi yang diperlukan untuk melakukan tindakan. Ini memungkinkan metode parameterisasi dengan permintaan yang berbeda, menunda atau mengantri pelaksanaan permintaan, dan mendukung operasi undo.
Contoh Penggunaan: Dalam aplikasi otomasi rumah, perintah seperti menyalakan/mematikan lampu atau menyesuaikan termostat dapat dienkapsulasi dalam objek perintah. Perintah ini dapat dikirim dengan perangkat yang berbeda, seperti smartphone atau tablet, dan dapat dijadwalkan atau dibatalkan sesuai kebutuhan.
Definisi: Pola prototipe memungkinkan menyalin objek yang ada tanpa membuat kode tergantung pada kelas mereka. Setiap kelas prototipe mengimplementasikan antarmuka prototipe, yang menyediakan metode untuk mengkloning dirinya sendiri.
Contoh Penggunaan: Dalam permainan, alih -alih membuat objek dari awal setiap kali dalam sebuah adegan, objek 'prototipe' dapat dikloning untuk membuat salinan yang identik. Ini sangat berguna dalam skenario game di mana menciptakan dan menghancurkan banyak objek serupa bisa intensif kinerja.
Definisi: Pola kenang -kenangan memungkinkan menyelamatkan dan memulihkan keadaan suatu objek sebelumnya tanpa mengungkapkan rincian implementasinya. Pola ini berguna untuk mengimplementasikan fitur -fitur seperti undo dalam aplikasi yang membutuhkan kemampuan untuk kembali ke status sebelumnya.
Contoh Penggunaan: Bayangkan mengembangkan editor teks yang memungkinkan pengguna untuk membatalkan perubahan teks. Setiap kali edit signifikan dibuat, keadaan editor disimpan dalam objek kenang -kenangan. Jika pengguna ingin membatalkan perubahan, editor dapat mengembalikan keadaan dari salah satu objek kenang -kenangan ini, mengembalikan teks ke keadaan sebelumnya.
Definisi: Pola mediator mendefinisikan suatu objek yang memusatkan komunikasi yang kompleks dan ketergantungan antara objek yang terhubung, mempromosikan kopling longgar dan mencegah objek dari saling merujuk secara langsung satu sama lain. Ini memungkinkan penanganan interaksi yang lebih kompleks dan meningkatkan pemeliharaan kode.
Contoh Penggunaan: Pertimbangkan aplikasi kontrol lalu lintas udara. Alih -alih membiarkan setiap pesawat berkomunikasi secara langsung dengan semua yang lain (menciptakan sistem yang sangat kompleks), mediator - dalam hal ini, menara kontrol - menangani semua komunikasi. Pesawat berkomunikasi hanya dengan menara kontrol, yang kemudian mengarahkan tindakan masing -masing pesawat, seperti kapan dan di mana harus mendarat.
Definisi: Pola metode template mendefinisikan kerangka algoritma dalam suatu metode, menunda beberapa langkah untuk dieksekusi oleh subkelas. Ini memungkinkan mendefinisikan kembali langkah -langkah tertentu dari suatu algoritma tanpa mengubah struktur algoritma.
Contoh Penggunaan: Pikirkan kerangka pengujian otomatis. Metode templat dapat digunakan untuk menentukan struktur uji standar, di mana metode templat menetapkan aliran eksekusi uji (pengaturan, eksekusi, pembersihan). Subkelas uji spesifik kemudian dapat menyesuaikan setiap langkah dengan mengimplementasikan metode untuk pengaturan, eksekusi uji aktual, dan operasi pembersihan setelah pengujian.
Definisi: Pola pengamat menetapkan hubungan satu-ke-banyak antara objek sehingga ketika satu objek berubah menyatakan, semua tanggungannya diberitahu dan diperbarui secara otomatis. Pola ini sangat berguna untuk menerapkan sistem pemberitahuan acara terdistribusi, di mana perubahan pada satu negara harus tercermin secara real-time dalam sistem atau komponen lain.
Contoh Penggunaan: Pertimbangkan sistem manajemen iklim di gedung yang cerdas. Sensor suhu (penerbit) terus memantau lingkungan dan, dalam hal perubahan signifikan, mengirim pembaruan ke berbagai perangkat (pengamat), seperti AC dan sistem pemanas, yang menyesuaikannya untuk mempertahankan suhu optimal. Dengan cara ini, sistem kontrol iklim dapat secara dinamis bereaksi terhadap kondisi lingkungan tanpa intervensi manusia langsung, memastikan kenyamanan dan efisiensi energi.
Definisi: Pola keadaan memungkinkan suatu objek untuk mengubah perilakunya ketika keadaan internalnya berubah. Tampaknya seolah -olah objek mengubah kelasnya. Pola ini berguna untuk menangani situasi perubahan keadaan yang kompleks, mengurangi kebutuhan untuk kondisi percabangan (IF-Else atau Switch) dalam kode.
Contoh Penggunaan: Bayangkan mengembangkan aplikasi untuk mengelola siklus hidup pesanan online. Perintah dapat di berbagai negara seperti "pemrosesan," "dikirim," "dikirim." Menggunakan pola negara, Anda dapat mendefinisikan kelas abstrak Orderstate dengan metode seperti proses (), kapal (), dan pengiriman (). Setiap keadaan konkret (misalnya, ProcessingState, ShippedState, DeliveredState) akan mengimplementasikan metode ini untuk menangani transisi keadaan dengan tepat. Konteks (misalnya, kelas pesanan) mempertahankan referensi ke keadaan saat ini dan delegasi operasi negara ke objek negara konkret, sehingga memungkinkan perilaku Ordo untuk berubah berdasarkan keadaan saat ini tanpa intervensi langsung dari kode klien.
Definisi: Pola strategi adalah pola perilaku yang memungkinkan mendefinisikan keluarga algoritma, merangkumnya dalam kelas khusus, dan membuat objek dapat dipertukarkan dalam konteks itu. Pendekatan ini memungkinkan berbagai algoritma secara independen dari klien yang menggunakannya.
Contoh Penggunaan: Bayangkan aplikasi e-commerce yang perlu menerapkan strategi perhitungan pajak yang berbeda tergantung pada negara pelanggan. Dengan pola strategi, Anda dapat mendefinisikan antarmuka TaxStrategy dengan metode CalculateTax () dan kemudian menerapkan berbagai strategi konkret untuk konteks pajak yang berbeda, seperti UStaxStrategy, EUTAXStrategy, dan AsiataxStrategy.
Definisi: Pola Iterator menyediakan cara untuk mengakses elemen objek agregat berurutan tanpa mengekspos representasi yang mendasarinya. Pola ini sangat berguna untuk mengelola berbagai mode traversal koleksi.
Contoh Penggunaan: Pertimbangkan kumpulan data seperti pohon atau grafik. Dengan menggunakan pola Iterator, Anda dapat memberikan akses yang seragam ke elemen -elemen struktur data yang kompleks ini tanpa kode klien harus menangani perbedaan antara berbagai struktur. Misalnya, Anda dapat memiliki iterator yang berbeda seperti DepThFirSTiterator dan LaterthFirstiterator untuk melintasi grafik.
Definisi: Pola pengunjung memungkinkan memisahkan suatu algoritma dari struktur objek yang dioperasikannya. Pola ini menyediakan cara untuk menambahkan operasi baru ke kelas yang ada tanpa memodifikasinya.
Contoh Penggunaan: Bayangkan memiliki sistem manajemen pelanggan dalam konteks asuransi. Pola pengunjung memungkinkan objek untuk melintasi daftar pelanggan dan mengirimi mereka pesan yang dipersonalisasi mengenai asuransi.
Definisi: Pola adaptor memungkinkan antarmuka yang tidak kompatibel untuk bekerja bersama. Ini bertindak sebagai jembatan antara dua antarmuka yang tidak kompatibel dengan mengubah antarmuka kelas yang ada menjadi antarmuka lain yang diharapkan oleh klien.
Contoh Penggunaan: Misalkan Anda memiliki antarmuka baru untuk rendering grafik, tetapi perpustakaan yang ada menawarkan fungsionalitas yang sama dengan antarmuka yang berbeda. Alih -alih menulis ulang perpustakaan yang ada, Anda dapat menggunakan adaptor untuk membuat perpustakaan yang ada berfungsi dengan antarmuka rendering baru, sehingga memungkinkan integrasi yang mulus.
Definisi: Pola jembatan adalah pola struktural yang memisahkan abstraksi dari implementasinya, memungkinkan mereka untuk bervariasi secara independen. Ini digunakan untuk membagi kelas besar atau satu set kelas yang terkait erat menjadi dua hierarki terpisah - abstraksi dan implementasi - yang dapat dikembangkan dan dimodifikasi secara independen.
Contoh Penggunaan: Dalam aplikasi pengiriman pizza, ada berbagai jenis pizza yang tersedia, masing -masing dengan rasanya yang unik, dan berbagai jenis restoran dengan gaya memasak yang berbeda. Ketika pesanan untuk pizza ditempatkan, aplikasi menggunakan pola jembatan untuk memastikan bahwa pizza disusun sesuai dengan preferensi pelanggan dan dimasak mengikuti gaya spesifik dari restoran yang dipilih. Dengan cara ini, pola jembatan memfasilitasi integrasi antara berbagai jenis pizza dan berbagai gaya memasak restoran, memungkinkan pengiriman yang efisien dan dipersonalisasi.
Definisi: Pola komposit adalah pola struktural yang memungkinkan kelompok memperlakukan objek dan objek individu secara seragam. Pola ini mengatur objek ke dalam struktur pohon untuk mewakili hierarki bagian-whole. Ini memungkinkan pengguna untuk bekerja dengan objek individu dan komposisi objek secara seragam.
Contoh Penggunaan: Bayangkan memiliki sistem manajemen kotak hadiah yang berisi item individual dan kotak lainnya. Klien membuat kotak utama dan menambahkan beberapa item seperti buku dan video game, bersama dengan kotak yang lebih kecil yang berisi buku. Harga total semua item di dalam kotak utama kemudian dihitung. Pola komposit memungkinkan memperlakukan objek individu dan komposisi objek dengan cara yang sama, menyederhanakan kode dan membuat operasi seragam pada objek individu dan kelompok objek.
Definisi: Pola dekorator adalah pola struktural yang memungkinkan penambahan tanggung jawab tambahan pada objek secara dinamis tanpa mengubah strukturnya melalui pewarisan. Pola ini memberikan alternatif yang fleksibel untuk memperoleh kelas yang diperluas untuk memperluas fungsionalitas.
Contoh Penggunaan: Bayangkan memiliki sistem pemberitahuan. Pola dekorator memungkinkan memperluas fungsionalitas berbagai platform sosial. Dengan cara ini, pemberitahuan dapat dikirim melalui berbagai saluran tanpa secara langsung memodifikasi kode.
Definisi: Pola fasad adalah pola struktural yang menyediakan antarmuka terpadu ke satu set antarmuka dalam subsistem. Pola ini mendefinisikan antarmuka tingkat tinggi yang membuat subsistem lebih mudah digunakan.
Contoh Penggunaan: Pertimbangkan sistem yang kompleks untuk mengelola perangkat multimedia dalam mobil, yang mencakup subsistem untuk konektivitas audio, video, dan bluetooth. Fasad dapat menawarkan antarmuka sederhana untuk memulai musik, menghentikan video, atau mengelola panggilan, menyembunyikan kompleksitas dan ketergantungan antara subsistem.
Definisi: Pola kelas terbang adalah pola struktural yang menggunakan berbagi untuk mendukung sejumlah besar objek berbutir halus secara efisien. Ini sangat berguna ketika sebagian besar keadaan objek dapat dibagikan dan dibuat eksternal untuk itu.
Contoh Penggunaan: Bayangkan memiliki aplikasi untuk mengelola jenis buku. Ini menggunakan pabrik untuk membuat dan berbagi contoh jenis buku. Dengan cara ini, jika jenis buku yang sama diminta beberapa kali, objek yang sama dikembalikan alih -alih membuat yang baru setiap kali. Ini menghemat memori dan meningkatkan kinerja aplikasi secara keseluruhan.
Definisi: Pola proxy menyediakan pengganti atau placeholder untuk objek lain untuk mengontrol akses ke sana. Pola ini digunakan ketika Anda ingin memberlakukan pembatasan untuk mengakses objek, memuat malas, atau untuk memberikan lokalisasi objek yang transparan dalam lingkungan terdistribusi.
Contoh Penggunaan: Dalam kontrol akses ke sistem file, proxy dapat digunakan untuk mengontrol operasi pengguna pada file. Proxy memverifikasi kredensial pengguna sebelum mengizinkan akses aktual ke file, memberikan keamanan tambahan.
Definisi: Pola singleton adalah pola kreasi yang memastikan kelas hanya memiliki satu contoh sambil memberikan titik akses global untuk contoh ini.
Contoh Penggunaan: Dalam suatu aplikasi, pola singleton dapat digunakan untuk mengelola konfigurasi aplikasi. Objek Singleton dapat berisi semua konfigurasi yang tetap konstan selama pelaksanaan aplikasi dan dapat dibaca dari berbagai bagian program.