CodeGym/Kursus Java/Modul 3/Corak reka bentuk

Corak reka bentuk

Tahap, pelajaran
Tersedia

1.1 Pengenalan kepada corak

Seperti yang dinyatakan sebelum ini, seorang pengaturcara memulakan kerja pada program dengan mereka bentuk modelnya: menyusun senarai entiti yang program itu akan beroperasi. Dan semakin banyak entiti dalam program, semakin kompleks program tersebut.

Oleh itu, untuk mengurangkan kerumitan program, mereka cuba menyeragamkan interaksi objek. Dan di sinilah corak reka bentuk atau corak reka bentuk banyak membantu pengaturcara . Daripada corak reka bentuk Inggeris .

Penting! Dalam bahasa Rusia, perkataan reka bentuk biasanya bermaksud reka bentuk grafik, dalam bahasa Inggeris ini tidak berlaku. Perkataan reka bentuk bahasa Inggeris bermaksud lebih dekat dengan perkataan "reka bentuk" dan / atau "peranti". Sebagai contoh, reka bentuk enjin bukan penampilannya, tetapi struktur dalamannya.

Oleh itu, corak reka bentuk adalah betul-betul corak/corak reka bentuk. Saya mengesyorkan agar anda berhenti menggunakan perkataan reka bentuk dalam erti kata "penampilan" sama sekali. Anda adalah Jurutera Perisian masa depan, dan untuk anda reka bentuk adalah reka bentuk yang tepat.

Jadi apakah corak reka bentuk ini? Pertama sekali, corak reka bentuk ialah penyelesaian standard kepada masalah standard . Penyelesaian yang baik, berkesan dan teruji masa.

Katakan anda diminta mereka bentuk basikal, anda boleh menjadikannya dua roda, tiga atau lima. Jadi dengan cara ini, pada awal reka bentuk, ia adalah. Tetapi pendekatan yang diuji masa adalah dua roda. Tetapi pendekatan yang jelas semasa melalui kesakitan dan kesilapan:

Lazimnya, templat bukanlah penyelesaian lengkap yang boleh ditukar terus kepada kod, ia hanyalah contoh penyelesaian yang baik untuk masalah yang boleh digunakan dalam pelbagai situasi.

Corak berorientasikan objek menunjukkan hubungan dan interaksi antara kelas atau objek , tanpa menyatakan kelas akhir atau objek aplikasi yang akan digunakan.

1.2 Sejarah corak reka bentuk

Pada tahun 70-an, pengaturcara berhadapan dengan keperluan untuk membangunkan program besar yang perlu diusahakan oleh seluruh pasukan pembangunan. Pelbagai kaedah mengatur kerja telah dicuba, tetapi industri pembinaan paling banyak mempengaruhi pembangunan.

Untuk mengatur kerja sekumpulan besar orang, amalan dan pendekatan daripada industri pembinaan digunakan. Ngomong-ngomong, dari situlah istilah seperti pemasangan (bina), Pembangun Perisian (pembina), dan konsep seni bina masuk ke dalam pengaturcaraan.

Dan seperti yang anda rasa, idea corak reka bentuk juga diambil dari industri pembinaan. Konsep corak pertama kali diterangkan oleh Christopher Alexander dalam The Pattern Language. Bandar. Bangunan. Pembinaan". Dalam buku ini, bahasa khas, corak, telah digunakan untuk menerangkan proses reka bentuk bandar.

Corak dalam pembinaan menerangkan keputusan biasa yang diuji masa: berapa tinggi tingkap sepatutnya, berapa banyak tingkat perlu ada di dalam bangunan, berapa banyak kawasan di microdistrict perlu diperuntukkan untuk pokok dan rumput.

Oleh itu, tidak hairanlah pada tahun 1994 buku “Teknik Reka Bentuk Berorientasikan Objek. Corak Reka Bentuk”, yang merangkumi 23 corak yang menyelesaikan pelbagai masalah reka bentuk berorientasikan objek.

Buku ini ditulis oleh 4 pengarang: Erich Gamma, Richard Helm, Ralph Johnson dan John Vlissides. Tajuk buku itu terlalu panjang untuk diingati oleh sesiapa sahaja. Oleh itu, tidak lama kemudian semua orang mula memanggilnya "buku oleh kumpulan empat", iaitu, "buku dari kumpulan empat orang" , dan kemudian juga "buku GoF".

Dan sejak itu, corak reka bentuk lain telah ditemui. Pendekatan "corak" telah menjadi popular dalam semua bidang pengaturcaraan, jadi kini anda boleh menemui pelbagai jenis corak di luar reka bentuk objek.

Penting! Corak bukanlah beberapa penyelesaian super-asli, tetapi, sebaliknya, penyelesaian biasa yang sering ditemui untuk masalah yang sama. Penyelesaian terbukti yang baik.

1.3 Senarai corak

Ramai pengaturcara tidak mempelajari satu corak pun sepanjang hidup mereka, yang bagaimanapun, tidak menghalang mereka daripada menggunakannya. Seperti yang kita katakan sebelum ini, corak adalah penyelesaian yang diuji masa yang baik, dan jika pengaturcara tidak bodoh, maka dengan pengalaman dia sendiri mencari penyelesaian sedemikian.

Tetapi mengapa, melalui berpuluh-puluh percubaan dan kesilapan, mencapai penyelesaian yang optimum apabila ada orang yang telah melalui cara ini dan telah menulis buku dengan intipati pengalaman dan kebijaksanaan hidup mereka?

Anda boleh memalu paku dengan sepana, tetapi mengapa? Anda juga boleh menggunakan gerudi jika anda berusaha keras. Tetapi pemilikan instrumen yang baik secara sedar itulah yang membezakan profesional daripada amatur. Dan profesional tahu bahawa ciri utama gerudi tidak sama sekali dalam hal ini. Jadi, kenapa anda perlu tahu corak?

  • Penyelesaian yang terbukti. Anda menghabiskan lebih sedikit masa menggunakan penyelesaian luar biasa dan bukannya mencipta semula roda. Beberapa keputusan yang anda boleh fikirkan sendiri, tetapi banyak yang mungkin menjadi penemuan untuk anda.
  • Penyeragaman kod. Anda membuat lebih sedikit kesilapan pengiraan semasa mereka bentuk, menggunakan penyelesaian bersatu biasa, kerana semua masalah tersembunyi di dalamnya telah lama ditemui.
  • Kamus pengaturcaraan am. Anda menyebut nama corak dan bukannya meluangkan masa sejam untuk menerangkan kepada pengaturcara lain tentang reka bentuk hebat yang anda hasilkan dan kelas apa yang diperlukan untuk ini.

Apakah coraknya?

Corak berbeza dalam tahap kerumitan, perincian dan liputan sistem yang direka bentuk. Melukis analogi dengan pembinaan, anda boleh meningkatkan keselamatan persimpangan dengan memasang lampu isyarat, atau anda boleh menggantikan persimpangan dengan persimpangan keseluruhan kereta dengan laluan bawah.

Corak yang paling rendah dan mudah ialah simpulan bahasa. Ia tidak universal, kerana ia hanya terpakai dalam rangka kerja satu bahasa pengaturcaraan.

Yang paling serba boleh ialah corak seni bina yang boleh dilaksanakan dalam hampir mana-mana bahasa. Mereka diperlukan untuk mereka bentuk keseluruhan program, dan bukan elemen individunya.

Tetapi perkara utama ialah corak berbeza dengan tujuan. Corak yang akan kita kenali boleh dibahagikan kepada tiga kumpulan utama:

  • Corak penciptaan menjaga penciptaan objek yang fleksibel tanpa memperkenalkan kebergantungan yang tidak perlu ke dalam program.
  • Corak struktur menunjukkan cara yang berbeza untuk membina hubungan antara objek.
  • Corak tingkah laku menjaga komunikasi yang cekap antara objek.

1.4 Pengenalan kepada UML

Mari kita mulakan dengan melihat 23 corak yang sama yang diterangkan dalam buku Geng Empat. Kedua-dua corak itu sendiri dan nama mereka adalah perkara biasa walaupun untuk pengaturcara baru. Saya akan memperkenalkan anda kepada mereka, tetapi saya amat mengesyorkan membaca buku itu tentang corak.

Corak reka bentuk tidak terikat pada bahasa pengaturcaraan tertentu, jadi UML biasanya digunakan untuk menerangkannya. Ia sangat popular 20 tahun yang lalu, tetapi sekarang ia kadang-kadang digunakan. Dan dengan cara ini, penerangan corak hanyalah tempat di mana penggunaan UML adalah standard.

Dengan UML, anda boleh menerangkan hubungan antara entiti yang berbeza. Dalam kes kami, ini adalah objek dan kelas.

Hubungan antara kelas diterangkan oleh empat jenis anak panah:

komposisi (komposisi) - subspesies pengagregatan di mana "bahagian" tidak boleh wujud secara berasingan daripada "keseluruhan".
agregasi - menerangkan hubungan "bahagian" - "keseluruhan", di mana "bahagian" boleh wujud secara berasingan daripada "keseluruhan". Rombus ditunjukkan dari sisi "keseluruhan".
kebergantungan - perubahan dalam satu entiti (bebas) boleh menjejaskan keadaan atau tingkah laku entiti lain (bergantung). Entiti bebas ditunjukkan pada sisi anak panah.
generalisasi - hubungan pewarisan atau pelaksanaan antara muka. Di sebelah anak panah ialah superclass atau antara muka.

Sebenarnya, semuanya sangat mudah di sini. Anak panah terakhir sebenarnya bermaksud bahawa satu kelas diwarisi daripada kelas lain. Dan anak panah pertama dan kedua ialah satu objek menyimpan pautan ke objek kedua. Dan itu semua.

Jika berlian pautan berwarna hitam, maka pautannya lemah: objek boleh wujud tanpa satu sama lain. Jika berlian berwarna putih, maka objek itu sangat berkaitan, seperti kelas HttpRequestdan kelas anaknya HttpRequest.Builder.

1.5 Senarai corak

Jenis corak akan dilambangkan dengan warna dan huruf yang berbeza:

B- tingkah laku (behavioral);

C- penjanaan (penciptaan);

S- struktur (struktur).

Dan akhirnya, senarai 23 corak reka bentuk:

C- Kilang Abstrak

S- Penyesuai

S- Jambatan

C- Pembina

B- Rantaian Tanggungjawab

B- Pasukan

S- Penghubung

S- Penghias

S– Fasad

C- kaedah kilang

S- oportunis

B- Jurubahasa

B- Pemula

B- Perantara

B- Penjaga

C- Prototaip

S- Proksi

B- Pemerhati

C- Penyendiri

B- Negeri

B- Strategi

B— Kaedah templat

B- Pelawat

Komen
  • Popular
  • Baru
  • Tua
Anda mesti log masuk untuk meninggalkan ulasan
Halaman ini tidak mempunyai sebarang ulasan lagi