Model Desain Untuk Pemula

Diterbitkan: 2016-01-13

Jika Anda telah menulis program untuk produk atau aplikasi perangkat lunak, besar / kecil, kemungkinan besar Anda telah menggunakan banyak Pola Desain… meskipun mungkin saja itu bukan salah satu pola desain yang paling sering digunakan / standar.

Tapi ya, ada perbedaan yang jelas antara menerapkan pola desain dan "menggunakan" pola desain ... bagaimanapun, orang yang bekerja dengan pola desain memahaminya, atau akan memahaminya dengan mudah.

Intinya, pola desain bukanlah hal baru bagi programmer.

Pada artikel di bawah ini, saya mencoba menjelaskan pola desain, pada dasarnya, dan kami akan mempelajari detail berbagai pola, contoh, dll di artikel lain.

Apa itu Pola Desain?

Memulai…

Saya pikir cara terbaik untuk memulai dengan memahami pola desain, adalah dengan memahami pola non-teknis yang kita sadari / tidak kita ikuti dalam kehidupan kita sehari-hari.

Sebagai contoh, mari kita ambil banyak Resume yang dikirimkan untuk sebuah lowongan pekerjaan. Resume setiap orang tidak terlihat sama… meskipun mereka semua cenderung melakukan hal yang sama, yaitu memberi tahu pembaca apa keahlian mereka, atau bagaimana dia bisa cocok untuk pekerjaan itu.

Sebagian besar dari mereka yang mengirimkan resume ke pekerjaan, tahu bahwa mereka perlu mengirimkan resume dengan serangkaian informasi tertentu dalam dokumen Word yang diformat.

Ini… adalah sebuah pola, bahwa setiap orang mengirimkan resume dengan serangkaian informasi tertentu yang diungkapkan di dalamnya.

Jika Anda merasa seperti… sebut saja Template, bukan Pola. Desain Template.

Ada banyak hal seperti itu dalam kehidupan nyata yang merupakan pola. Beberapa orang menyukai contoh di bawah ini:

Semua koki di seluruh dunia memasak Pizza atau Kentang Goreng dengan cara yang sama. Meskipun mereka mungkin menambahkannya / membumbuinya secara berbeda. Itu adalah sebuah pola.

Setiap desain mobil mengikuti pola desain dasar, empat roda, roda kemudi, sistem penggerak inti seperti kopling akselerator-break, dll.

Segala sesuatu yang dibuat/diproduksi berulang kali, pasti akan mengikuti pola dalam desainnya… baik itu Mobil, Pizza, Mesin ATM, apapun… bahkan Sikat Gigi.

Desain yang hampir menjadi cara standar pengkodean beberapa logika/mekanisme/teknik dalam perangkat lunak, kemudian dikenal sebagai – dan karenanya – dipelajari sebagai, Pola Desain Perangkat Lunak.

Mengapa Pola Desain Penting?

Pada dasarnya karena dua alasan:

  1. Untuk tetap berpegang pada standar
  2. Untuk mempercepat pembangunan

Saya akan menjelaskan secara rinci.

Pertama, kita melihat mengapa berpegang pada pola standar itu menarik.

Mari kita lihat daftar contoh Resume yang telah kita bahas sebelumnya.

Mungkin ada satu atau dua pelamar yang mengirim lamaran kerja mereka melalui teks email tanpa format yang benar, tanpa lampiran pada email mereka, dll., .. satu atau dua pelamar ini tidak mengikuti polanya.. dan kemungkinan besar TIDAK akan berakhir dengan pekerjaan…. mengapa? Karena mereka menyimpang dari pola mapan, yang mungkin tidak disukai oleh orang-orang yang membuat daftar pendek resume untuk pekerjaan itu.

Apakah tidak ada orang yang menyimpang dari pola dan menjadi "keren"? Bukan Inovasi?

Ya, ada kalanya resume yang disajikan sangat berbeda mendapat pekerjaan karena berbeda dari yang lain. Biasanya saya pernah mendengar tentang desainer web yang mendapatkan pekerjaan utama karena mereka menyusun dan mempresentasikan film CD karya mereka, atau membuat karakter animasi yang menjelaskan pekerjaan mereka, memasangnya di blog mereka, dan hal-hal semacam itu.

Tapi.. ini adalah eksperimen ( Inovasi berasal dari eksperimen yang berhasil ).

Paling sering dalam pengembangan perangkat lunak, Anda tidak mampu bereksperimen, karena tekanan waktu, harapan, dll., Tapi ya terkadang, beberapa proyek menarik memang memungkinkan untuk beberapa eksperimen.

Dalam perangkat lunak, kami tidak dapat melakukan hal-hal dasar seperti Setoran Bank… dalam 101 cara… hanya akan ada beberapa cara untuk memproses Setoran Bank.. jadi masuk akal untuk mengikuti Pola yang sudah mapan dan teruji.

Selain itu, sebagian besar pola desain memiliki variasi… beberapa variasi sangat populer sehingga variasi tersebut juga akan menjadi jenis pola standar baru.

Proyek perangkat lunak hari ini diharapkan (setidaknya secara implisit) mengikuti desain yang sudah mapan dari produk / perangkat lunak serupa di pasar.

Di sinilah berpegang pada gaya standar pengkodean atau pola desain membantu pengembangan perangkat lunak… mempercepat pengembangan, menghilangkan kekhawatiran tentang implementasi baru yang belum diuji, dll.,

Mengikat waktu pengembangan

Mengikuti pola desain standar juga memiliki keuntungan berkomunikasi dengan mudah melalui pohon / hierarki arsitek Perangkat Lunak, Pemimpin modul, Pemimpin tim, Pengembang, dll., tentang "Bagaimana" sesuatu perlu dikembangkan, dan bukan hanya "Apa" yang harus maju.

Kadang-kadang bahkan membantu Tim Pengujian, karena penguji akan tahu dari pengalaman bahwa kode yang mengikuti pola desain tertentu mungkin dapat diuji dengan cara tertentu dengan seperangkat alat Pengujian dalam jangka waktu tertentu, dan desain yang diketahui seperti itu mungkin tidak memiliki beberapa kekurangan. atau memiliki beberapa kekurangan yang 'diketahui'.

Bukankah menggunakan Pola Desain memberikan sentuhan pribadi?

Tidak. Pertama karena kami tidak mengatakan Anda mengikuti pola desain dan tidak ada hal lain yang terjadi. Sebagian besar implementasi proyek hanya berbagi persyaratan dasar dengan proyek lain, dan kemungkinan besar akan memiliki penyimpangan. Membangun penyimpangan ini akan membutuhkan pelenturan dan peregangan pola standar yang digunakan dalam sebuah implementasi.

Ini seperti membuat pizza dengan cara standar, kemudian membumbuinya / menyajikannya dengan kebutuhan yang berbeda, baik seperti pizza full pie, atau cut pie, atau apa pun.

Dalam memahami pentingnya pola desain, satu hal yang sangat **penting :

Pola Desain bukanlah teknologi atau kerangka kerja apa pun yang dipaksakan oleh perusahaan atau bahasa pemrograman tertentu kepada kami. Artinya, seperti konsep terbuka.. Anda bebas mengambilnya, menggunakannya, memodifikasinya sesuai kebutuhan Anda, dan yang terpenting… rasakan sendiri.

Semua pola desain standar atau populer, sebenarnya, dapat diperpanjang cukup banyak.. mereka menjadi populer, pertama, hanya karena banyak orang menggunakannya.. dan banyak orang menggunakannya hanya karena mereka fleksibel untuk kebutuhan mereka.

Atau bagaimana menurut Anda pola desain standar akan sesuai dengan proyek di New Jersey untuk sebuah perusahaan dan juga di Bangalore untuk perusahaan yang berbeda dan jenis proyek yang berbeda.

Itu membawa kita ke “ Sebagian besar pola desain adalah Generik “… artinya mereka tidak selalu digunakan untuk membangun jenis perangkat lunak yang sama. Anda mungkin tidak mendengar hal-hal seperti "Pola desain perangkat lunak perbankan" atau "pola desain perangkat lunak jejaring sosial" yang digunakan dalam diskusi umum... tetapi hanya "Pola Desain".

Siapa yang Harus Dipusingkan dengan Pola Desain?

  1. Sama seperti bagaimana seorang Arsitek bangunan yang baik mengembangkan keterampilannya merancang bangunan, dengan mempelajari Arsitektur dan Desain berbagai bangunan dan bentuk sepanjang hidupnya, seorang Arsitek Perangkat Lunak harus mempelajari dan memvisualisasikan bagaimana sistem Perangkat Lunak / Teknologi yang berbeda di seluruh dunia dirancang atau berarsitektur.
  2. Dan seperti halnya para pekerja konstruksi sebuah bangunan harus mengetahui berbagai cara dalam menerapkan desain bangunan, baik dari pengalaman mereka sendiri atau dengan memahaminya dari Arsitek Bangunan.

Pengembang/pemrogram perangkat lunak harus memahami pola desain perangkat lunak dasar dan kode implementasinya… baik mereka sendiri atau dari Arsitek Perangkat Lunak yang menginstruksikan tim untuk mengembangkannya mengikuti Pola tertentu.

Pola Kode Dasar

Di baris pembuka artikel ini, saya mengatakan programmer mana pun akan menggunakan pola desain. Berikut adalah beberapa contoh kode yang sangat mendasar yang mengikuti suatu pola.

  1. Berikut ini adalah pola desain Filter Intercepting dasar.
  2. Sembunyikan Salin Kode
  3. [kode]
    beralih (kondisi){
    Nilai kasus1:
    Nilai kasus2:
    bawaan:
    }
    [/kode]
  4. Pemicu peristiwa, Penangan Peristiwa.. berada di bawah pola desain Subjek-Pengamat dasar. Kami akan membahas setiap standar pola, variasi populer, dengan contoh.. segera.
  5. Jika Anda telah menggunakan beberapa jenis koleksi, seperti Arraylist di C#, dan beralih melalui array, maka Anda telah menggunakan pola desain Iterator dasar.
  6. Kode di bawah ini adalah contoh pola dasar penanganan Exception/ Rantai Tanggung Jawab .
  7. Sembunyikan Salin Kode
  8. [kode]
    mencoba{
    }catch(Pengecualian ex){
    }
    akhirnya{
    }
    [/kode]

Berbagai Area Pola Desain

Ada terminologi yang berbeda dalam perangkat lunak selain Pola Desain.. beberapa di antaranya sering terkait dengan pola Desain yang telah kita bahas sejauh ini.. dan beberapa di antaranya sama sekali tidak terkait.

Apa yang sejauh ini telah kita bahas di atas terkadang disebut “ Pola Desain Implementasi ”.

Ada yang lain, seperti Pola Arsitektur, Pola Kerangka, Pola Bahasa (kebanyakan disebut Konstruksi Bahasa).

Mereka adalah pola yang diletakkan pada tingkat yang berbeda… seperti pola Bahasa adalah pola yang diimplementasikan sebagai bagian dari bahasa pemrograman seperti C# / Java, sebagai fitur / konstruksi bahasa.. beberapa di antaranya telah kita lihat.

Semua contoh subjek-pengamat, penyaring intersepsi, dll., diserap sebagai konstruksi bahasa di semua bahasa pemrograman tingkat tinggi populer yang muncul setelah C.

Pola arsitektur adalah model standar arsitektur perangkat lunak, biasanya mengacu pada metode yang berbeda untuk menempatkan atau menghubungkan modul atau lapisan atau tingkatan, yang membentuk aplikasi lengkap.

Ini sama sekali tidak terkait dengan pola desain dalam arti pengkodean/pemrograman itu… tetapi mereka memiliki jawaban yang sama untuk Mengapa / Apa yang dibahas dalam artikel ini.

Pola kerangka juga tidak terkait dengan diskusi kita tentang pola desain. Ketika kerangka kerja seperti .NET menerapkan cara khusus untuk kesalahan Logging atau Menelusuri rute eksekusi kode dengan mudah melalui metode atau objek bawaan kerangka kerja, mekanisme tersebut disebut sebagai pola Kerangka.

Beberapa contoh dalam .NET Framework termasuk fitur stackTrace, fitur atribut kelas dengan [] kurung siku di atas definisi kelas/metode, dll., Saat menggunakan fitur tersebut, kami mengkodekan dengan pola bawaan Framework.

Saya harap artikel ini membantu memberikan Ikhtisar Pola Desain dan terminologi terkait.

Selama ini kita hanya membahas apa itu standar dan seberapa pentingnya saja.. tapi kita tidak membahas apa itu pola standar itu sendiri.

Lisensi

Artikel ini, bersama dengan kode sumber dan file terkait, dilisensikan di bawah The Code Project Open License (CPOL).