Whimsy & Wise

Menambah Ilmu Menghadapi Dunia

Macam Macam Desain Pattern

 

Untuk mempelajari lebih dalam topik Pola Desain program perangkat lunak, lihat Pola Desain program perangkat lunak: Praktik Terbaik untuk Pembangun, dibuat oleh CH Afzal, seorang insinyur program perangkat lunak veteran dengan sejumlah tahun keahlian di Netflix, Microsoft , dan Oracle. Banyak yang di bawah ini diringkas dari kursusnya.

Pola Desain

Pola Desain telah berubah menjadi objek dari beberapa kontroversi dalam dunia pemrograman dalam acara-acara terbaru, sebagian besar sebagai akibat dari persepsi ‘penggunaan berlebihan’ mereka yang menghasilkan kode yang mungkin lebih tahan lama untuk diketahui dan ditangani.

Penting untuk mengetahui bahwa Pola Desain sama sekali tidak dimaksudkan untuk diretas secara pintas untuk digunakan dalam metode sembarangan, ‘satu ukuran untuk semua’ ke kode Anda. Mungkin pada akhirnya tidak ada pengganti untuk kemampuan memperbaiki kelemahan nyata dalam rekayasa program perangkat lunak.

Faktanya tetap, bahwa Pola Desain akan sangat membantu jika digunakan dalam kondisi pemasangan dan untuk penyebab pemasangan. Ketika digunakan secara strategis, mereka akan membuat programmer jauh lebih ramah lingkungan dengan memungkinkan mereka untuk menghindari menciptakan kembali roda pepatah, sebagai alternatif strategi pemanfaatan yang telah disempurnakan oleh orang lain. Selain itu mereka menyajikan bahasa luas yang bermanfaat untuk mengkonseptualisasikan masalah dan pilihan yang berulang ketika berdiskusi dengan orang lain atau mengelola kode dalam kelompok yang lebih besar.

Yang sedang dinyatakan, peringatan yang diperlukan adalah untuk memastikan bahwa bagaimana dan mengapa di balik setiap sampel dapat dipahami oleh pengembang.

Tanpa basa-basi tambahan (pada dasarnya urutan signifikansi, dari yang paling sedikit):

Pola Desain Paling Esensial

Singleton

Sampel tunggal digunakan untuk membatasi pembuatan kategori hanya pada satu objek. Itu berguna ketika satu (dan hanya satu) objek diperlukan untuk mengoordinasikan tindakan di seluruh sistem. Ada sejumlah contoh tempat hanya untuk satu kali kategori yang harus ada, bersama dengan cache, kolam renang ulir, dan pendaftar.

Itu sepele untuk memprovokasi objek kategori – namun bagaimana kita akan yakin bahwa hanya satu objek yang akan pernah dibuat? Jawabannya adalah menjadikan konstruktor ‘pribadi’ untuk kategori yang ingin kami garis besarkan sebagai seorang lajang. Dengan begitu, hanya anggota kategori yang bisa masuk konstruktor pribadi dan tidak ada orang lain.

Pertimbangan penting: Ini dapat dicapai untuk subkelas singleton dengan membuat konstruktor dilindungi sebagai alternatif pribadi. Ini mungkin tepat di bawah beberapa keadaan. Salah satu strategi yang diambil dalam kemungkinan ini adalah untuk membuat daftar lajang dari subclass dan metodologi getInstance dapat menyerap parameter atau menggunakan variabel suasana untuk mengembalikan singleton yang ditentukan. Registri kemudian memelihara pemetaan nama string ke objek tunggal, yang akan diakses seperti yang diinginkan.

Manufaktur Unit Teknik

Sebuah unit manufaktur standar menghasilkan barang-barang; unit pembuatan program perangkat lunak menghasilkan objek. Dan tidak pernah hanya itu – ia melakukannya tanpa menentukan kelas yang tepat dari item yang akan dibuat. Untuk melakukan ini, objek dibuat dengan memanggil metodologi unit manufaktur sebagai alternatif memanggil konstruktor.

Biasanya, pembuatan objek di Java berlangsung seperti:

SomeClass someClassObject = new SomeClass ();

Masalah dengan strategi di atas adalah bahwa kode memanfaatkan objek SomeClass, tiba-tiba sekarang berubah menjadi tergantung pada implementasi konkret SomeClass. Tidak ada yang salah dengan memanfaatkan baru untuk membuat objek tetapi pasti datang dengan tas yang menyatukan kode kita dengan kelas implementasi konkret, yang mungkin sering bermasalah.

Teknik

Sampel teknik memungkinkan pengelompokan algoritma terkait di bawah abstraksi, yang memungkinkan pengalihan satu algoritma atau cakupan untuk satu lagi tanpa memodifikasi pembelanja. Sebagai alternatif menerapkan algoritma tunggal secara instan, kode tersebut menerima arahan runtime yang menentukan kelompok algoritma mana yang akan dijalankan.

Observer

Sampel ini adalah ketergantungan satu-ke-banyak antara objek agar ketika salah satu negara objek penyesuaian, semua tanggungan akan diberitahu. Itu biasanya dilakukan dengan memanggil satu dari setiap strategi mereka.

Demi kesederhanaan, pertimbangkan apa yang terjadi setelah Anda mematuhi seseorang di Twitter. Anda mungkin pada dasarnya meminta Twitter untuk mengirimi Anda (pengamat) tweet pembaruan dari individu (topik) yang Anda adopsi. Sampel terdiri dari dua aktor, pengamat yang ada dalam pembaruan dan topik yang menghasilkan pembaruan.

Suatu topik dapat memiliki banyak pengamat dan hubungan satu ke banyak. Meskipun demikian, seorang pengamat bebas berlangganan pembaruan dari berbagai topik juga. Anda mungkin dapat berlangganan umpan informasi dari halaman web Fb, yang mungkin menjadi topik dan setiap kali halaman web memiliki publikasi baru, pelanggan akan melihat publikasi baru.

Pertimbangan utama: Dalam banyak topik dan sedikit pengamat, jika setiap topik menyimpan pengamatnya secara terpisah, itu akan meningkatkan harga penyimpanan karena beberapa topik dapat menyimpan pengamat yang sama beberapa kali.

Builder

Karena judulnya menyiratkan, sampel builder digunakan untuk membangun objek. Secara umum, objek yang kita buat akan rumit, terdiri dari sejumlah sub-objek atau memerlukan kursus pembangunan yang rumit. Kereta membuat varietas yang rumit akan disederhanakan melalui penggunaan sampel pembangun. Objek komposit atau kombinasi adalah apa yang biasanya dibangun oleh pembangun.

Pertimbangan utama: Sampel pembangun mungkin terdengar sangat mirip dengan sampel ‘unit pabrikan ringkasan’ namun satu perbedaan adalah bahwa sampel pembangun membuat objek langkah-demi-langkah sedangkan sampel unit pabrikan mengembalikan item dalam sekali jalan.

Adaptor

Ini memungkinkan pelajaran yang tidak kompatibel bekerja secara kolektif dengan mengubah antarmuka 1 kelas menjadi satu lainnya. Anggap saja sebagai jenis penerjemah: ketika dua kepala negara yang tidak berbicara bahasa standar bertemu, biasanya seorang juru bahasa duduk di antara 2 dan menafsirkan dialog, sehingga memungkinkan komunikasi.

Jika Anda memiliki dua fungsi, dengan satu meludahkan output sebagai XML dengan yang sebaliknya membutuhkan JSON masuk, Anda kemudian akan menginginkan adaptor antara 2 untuk membuatnya berfungsi dengan baik.

State

Keadaan Sampel keadaan merangkum berbagai macam keadaan mesin akan berada, dan memungkinkan objek untuk mengubah kebiasaannya ketika penyesuaian keadaan dalam. Mesin atau konteksnya, sebagaimana disebut dalam pola-bicara, dapat mengambil tindakan yang mendorongnya ke kondisi yang sangat berbeda. Tanpa menggunakan sampel, kode berubah menjadi kaku dan menderita kondisi if-else.

Belajar Desain Pattern?

Dengan Pola Desain program perangkat lunak: Praktik Terbaik untuk Pembangun Anda akan memiliki kemungkinan untuk melakukan lebih dari sekadar mempelajari spekulasi. Anda akan mampu menyelami lebih jauh ke dalam masalah aktual dan merasakan opsi yang masuk akal dengan contoh kode kehidupan nyata.

Kursus ini bergantung pada e-book yang disukai oleh Gang of 4, namun diperkenalkan dalam format interaktif, mudah dicerna. Anda akan memahami 23 pola desain terkenal dari e-book secara interaktif, mempelajari fungsi-fungsi yang benar dari tiga varietas sampel desain utama (kreatif, struktural, dan perilaku), dan belajar untuk memasukkan pola desain ini ke dalam inisiatif individu Anda.

Malu Mau

Leave a Reply

Your email address will not be published. Required fields are marked *