Pola desain

Level 16, Pelajaran 0
Tersedia

1.1 Pengenalan pola

Seperti disebutkan sebelumnya, seorang programmer mulai bekerja pada sebuah program dengan merancang modelnya: menyusun daftar entitas yang akan dioperasikan oleh program tersebut. Dan semakin banyak entitas dalam program, semakin kompleks program tersebut.

Oleh karena itu, untuk mengurangi kerumitan program, mereka mencoba membakukan interaksi objek. Dan disinilah design pattern atau pola desain banyak membantu programmer . Dari pola desain bahasa Inggris .

Penting! Dalam bahasa Rusia, kata desain biasanya berarti desain grafis, dalam bahasa Inggris tidak demikian. Desain kata bahasa Inggris lebih dekat artinya dengan kata "desain" dan / atau "perangkat". Misalnya, desain sebuah mesin bukanlah tampilannya, melainkan struktur dalamnya.

Oleh karena itu, pola desain adalah pola/pola desain. Saya sarankan Anda berhenti menggunakan kata desain dalam arti "penampilan" sama sekali. Anda adalah Insinyur Perangkat Lunak masa depan, dan bagi Anda desain adalah desain yang tepat.

Jadi apa pola desain ini? Pertama-tama, pola desain adalah solusi standar untuk masalah standar . Solusi yang baik, efektif, dan teruji waktu.

Katakanlah Anda diminta mendesain sepeda, Anda bisa membuatnya beroda dua, tiga, atau bahkan lima. Jadi omong-omong, pada awal desain, begitulah. Tetapi pendekatan yang telah teruji oleh waktu adalah dua roda. Tetapi pendekatan yang jelas saat ini melalui rasa sakit dan kesalahan:

Biasanya, template bukanlah solusi lengkap yang dapat langsung diubah menjadi kode, melainkan hanya contoh solusi yang baik untuk suatu masalah yang dapat digunakan dalam berbagai situasi.

Pola berorientasi objek menunjukkan hubungan dan interaksi antara kelas atau objek , tanpa menentukan kelas akhir atau objek aplikasi mana yang akan digunakan.

1.2 Sejarah pola desain

Di tahun 70-an, programmer dihadapkan pada kebutuhan untuk mengembangkan program besar yang harus dikerjakan oleh seluruh tim pengembangan. Berbagai metode pengorganisasian pekerjaan dicoba, tetapi industri konstruksi paling mempengaruhi perkembangan.

Untuk mengatur pekerjaan sekelompok besar orang, praktik dan pendekatan dari industri konstruksi digunakan. Ngomong-ngomong, dari situlah istilah seperti perakitan (build), Pengembang Perangkat Lunak (builder), dan konsep arsitektur masuk ke dalam pemrograman.

Dan seperti yang Anda duga, ide pola desain juga diambil dari industri konstruksi. Konsep pola pertama kali dijelaskan oleh Christopher Alexander dalam The Pattern Language. Kota. Bangunan. Konstruksi". Dalam buku ini, bahasa khusus, pola, telah digunakan untuk menggambarkan proses desain kota.

Pola dalam konstruksi menggambarkan keputusan tipikal yang telah teruji oleh waktu: seberapa tinggi seharusnya jendela, berapa banyak lantai dalam gedung, berapa banyak area di distrik mikro yang harus dialokasikan untuk pepohonan dan halaman rumput.

Oleh karena itu, tidak mengherankan jika pada tahun 1994 buku “Techniques of Object-Oriented Design. Pola Desain”, yang mencakup 23 pola yang memecahkan berbagai masalah desain berorientasi objek.

Buku ini ditulis oleh 4 penulis: Erich Gamma, Richard Helm, Ralph Johnson dan John Vlissides. Judul buku itu terlalu panjang untuk diingat siapa pun. Oleh karena itu, segera semua orang mulai menyebutnya "buku oleh geng empat", yaitu, "buku dari geng empat" , dan bahkan "buku GoF".

Dan sejak itu, pola desain lainnya telah ditemukan. Pendekatan "pola" telah menjadi populer di semua bidang pemrograman, jadi sekarang Anda dapat menemukan semua jenis pola di luar desain objek.

Penting! Pola bukanlah beberapa solusi super orisinal, tetapi, sebaliknya, solusi tipikal yang sering ditemui untuk masalah yang sama. Solusi yang terbukti bagus.

1.3 Daftar pola

Banyak programmer tidak mempelajari satu pola pun sepanjang hidup mereka, yang, bagaimanapun, tidak menghalangi mereka untuk menggunakannya. Seperti yang kami katakan sebelumnya, pola adalah solusi teruji waktu yang baik, dan jika programmer tidak bodoh, maka dengan pengalaman dia sendiri yang menemukan solusi seperti itu.

Tetapi mengapa, melalui lusinan percobaan dan kesalahan, sampai pada solusi optimal ketika ada orang yang telah menempuh jalan ini dan telah menulis buku dengan saripati pengalaman dan kebijaksanaan hidup mereka?

Anda dapat memalu paku dengan kunci pas, tetapi mengapa? Anda bahkan dapat menggunakan bor jika Anda berusaha keras. Tetapi kepemilikan instrumen yang baik secara sadar itulah yang membedakan seorang profesional dari seorang amatir. Dan seorang profesional tahu bahwa fitur utama dari latihan ini sama sekali tidak ada dalam hal ini. Jadi, mengapa Anda perlu mengetahui pola?

  • Solusi yang terbukti. Anda menghabiskan lebih sedikit waktu menggunakan solusi siap pakai alih-alih menemukan kembali kemudi. Beberapa keputusan dapat Anda pikirkan sendiri, tetapi banyak yang mungkin merupakan penemuan bagi Anda.
  • Standarisasi kode. Anda membuat lebih sedikit kesalahan perhitungan saat mendesain, menggunakan solusi terpadu yang khas, karena semua masalah tersembunyi di dalamnya telah lama ditemukan.
  • Kamus pemrograman umum. Anda menyebutkan nama polanya alih-alih menghabiskan satu jam untuk menjelaskan kepada pemrogram lain betapa kerennya desain yang Anda buat dan kelas apa yang dibutuhkan untuk ini.

Apa polanya?

Pola berbeda dalam tingkat kerumitan, detail, dan cakupan sistem yang dirancang. Menggambar analogi dengan konstruksi, Anda dapat meningkatkan keamanan persimpangan dengan memasang lampu lalu lintas, atau Anda dapat mengganti persimpangan dengan persimpangan mobil utuh dengan underpass.

Pola tingkat paling rendah dan sederhana adalah idiom. Mereka tidak universal, karena hanya berlaku dalam kerangka satu bahasa pemrograman.

Yang paling serbaguna adalah pola arsitektur yang dapat diterapkan di hampir semua bahasa. Mereka diperlukan untuk merancang keseluruhan program, dan bukan elemen individualnya.

Tetapi yang utama adalah bahwa polanya berbeda tujuannya. Pola yang akan kita kenal dapat dibagi menjadi tiga kelompok utama:

  • Pola pembuatan menangani pembuatan objek yang fleksibel tanpa memperkenalkan ketergantungan yang tidak perlu ke dalam program.
  • Pola struktural menunjukkan cara berbeda dalam membangun hubungan antar objek.
  • Pola perilaku menjaga komunikasi yang efisien antar objek.

1.4 Pengantar UML

Mari kita mulai dengan melihat 23 pola yang sama yang dijelaskan dalam buku Gang of Four. Baik pola itu sendiri maupun namanya adalah hal yang akrab bahkan untuk programmer pemula. Saya akan memperkenalkan Anda kepada mereka, tetapi saya sangat menyarankan untuk membaca buku tentang pola itu.

Pola desain tidak terikat pada bahasa pemrograman tertentu, sehingga UML biasanya digunakan untuk menggambarkannya. Itu sangat populer 20 tahun yang lalu, tetapi bahkan sekarang kadang-kadang digunakan. Dan omong-omong, deskripsi pola hanyalah tempat di mana penggunaan UML menjadi standar.

Dengan UML, Anda dapat menggambarkan hubungan antar entitas yang berbeda. Dalam kasus kami, ini adalah objek dan kelas.

Hubungan antar kelas dijelaskan oleh empat jenis panah:

komposisi (komposisi) - subspesies agregasi di mana "bagian" tidak dapat ada secara terpisah dari "keseluruhan".
agregasi - menjelaskan hubungan "bagian" - "keseluruhan", di mana "bagian" dapat ada secara terpisah dari "keseluruhan". Belah ketupat ditunjukkan dari sisi "keseluruhan".
ketergantungan - perubahan dalam satu entitas (independen) dapat mempengaruhi keadaan atau perilaku entitas lain (tergantung). Entitas independen ditunjukkan di sisi panah.
generalisasi - hubungan pewarisan atau implementasi antarmuka. Di sisi panah adalah superclass atau antarmuka.

Faktanya, semuanya sangat sederhana di sini. Panah terakhir sebenarnya berarti bahwa satu kelas diwariskan dari kelas lain. Dan panah pertama dan kedua adalah bahwa satu objek menyimpan tautan ke objek kedua. Dan itu semua.

Jika berlian tautan berwarna hitam, maka tautannya lemah: objek dapat ada tanpa satu sama lain. Jika berlian berwarna putih, maka objek tersebut sangat terkait, seperti kelas HttpRequestdan kelas anaknya HttpRequest.Builder.

1.5 Daftar pola

Jenis pola akan dilambangkan dengan warna dan huruf yang berbeda:

B- perilaku (perilaku);

C- pembangkitan (penciptaan);

S- struktural (struktural).

Dan terakhir, daftar 23 pola desain:

C- Pabrik Abstrak

S- Adaptor

S- Menjembatani

C- Pembangun

B- Rantai Tanggung Jawab

B- Tim

S- Penghubung

S- Dekorator

S- Tatapan

C- metode pabrik

S- oportunis

B- Penerjemah

B- Iterator

B- Perantara

B- Penjaga

C- Prototipe

S- Proksi

B— Pengamat

C— Penyendiri

B- Negara

B— Strategi

B— Metode templat

B- Pengunjung

Komentar
  • Populer
  • Baru
  • Lama
Anda harus login untuk memberikan komentar
Halaman ini belum memiliki komentar