10 Prinsip Pemrograman Berorientasi Objek Saben Pangembang Kudu Ngerti

10 Prinsip Pemrograman Berorientasi Objek Saben Pangembang Kudu Ngerti

Cukup kerep aku ketemu pangembang sing durung krungu saka prinsip SOLID (kita ngedika bab mau ing rinci kene. - Transl.) utawa pemrograman berorientasi obyek (OOP), utawa wis krungu, nanging ora digunakake ing laku. Artikel iki nggambarake keuntungan saka prinsip OOP sing mbantu pangembang ing karya saben dinane. Sawetara wong kondhang, liyane ora dadi luwih, supaya artikel bakal migunani kanggo loro pamula lan programer experienced.

Kita ngelingake: kanggo kabeh pamaca Habr - diskon 10 ruble nalika ndhaptar kursus Skillbox nggunakake kode promosi Habr.

Skillbox nyaranake: Kursus online pendidikan "pangembang jawa".

KERING (Aja Ulangi Dhewe)

Prinsip sing cukup prasaja, inti sing jelas saka jeneng: "Aja mbaleni dhewe." Kanggo programmer, iki tegese kudu ngindhari kode duplikat, uga kesempatan kanggo nggunakake abstraksi ing karyane.

Yen ana rong bagean sing diulang ing kode kasebut, kudu digabung dadi siji cara. Yen nilai hardcoded digunakake luwih saka sapisan, iku worth Ngonversi menyang konstanta umum.

Iki perlu kanggo menakake kode lan wis luwih gampang kanggo njaga, kang goal utama OOP. Sampeyan uga ora kudu nggunakake union, amarga kode sing padha ora bakal ngliwati verifikasi karo OrderId lan SSN.

Encapsulating Owah-owahan

Umume produk piranti lunak perusahaan terus berkembang. Iki tegese owah-owahan kudu digawe kanggo kode, iku perlu didhukung. Sampeyan bisa nggawe urip luwih gampang kanthi nggunakake enkapsulasi. Iki bakal ngidini sampeyan nyoba luwih efisien lan njaga basis kode sing wis ana. Punika salah satunggaling conto.

Yen ditulis nganggo basa Jawa, ya nemtokake cara lan variabel pribadi kanthi standar.

Prinsip mbukak / ditutup

Prinsip iki bisa gampang dieling-eling kanthi maca pratelan ing ngisor iki: "Entitas piranti lunak (kelas, modul, fungsi, lan sapiturute) kudu mbukak kanggo ekstensi, nanging ditutup kanggo modifikasi." Ing laku, iki tegese padha bisa ngidini prilaku diganti tanpa ngganti kode sumber.

Prinsip kasebut penting nalika owah-owahan kode sumber mbutuhake revisi kode, testing unit, lan prosedur liyane. Kode sing ngetutake prinsip mbukak / ditutup ora owah nalika ditambahi, mula masalah kasebut luwih sithik.

Punika conto kode sing nglanggar prinsip iki.

10 Prinsip Pemrograman Berorientasi Objek Saben Pangembang Kudu Ngerti

Yen sampeyan kudu ngganti soko ing, iku bakal njupuk akèh wektu, amarga kabeh bagean saka kode sing ana sambungan karo pecahan sing dikarepake kudu diganti.

Miturut cara, openness-closedness minangka salah sawijining prinsip SOLID.

Prinsip Tanggung Jawab Tunggal (SRP)

Prinsip liyane saka set SOLID. Iki nyatakake yen "mung ana siji sabab sing nyebabake owah-owahan ing kelas." Kelas ngrampungake mung siji masalah. Bisa uga ana sawetara cara, nanging saben-saben digunakake mung kanggo ngatasi masalah umum. Kabeh cara lan properti mung kudu digunakake.

10 Prinsip Pemrograman Berorientasi Objek Saben Pangembang Kudu Ngerti

Ing Nilai saka asas iki loosens kopling antarane komponen lunak individu lan kode. Yen sampeyan nambahake luwih saka siji fungsi kanggo kelas, pirso hubungan antarane rong fungsi. Mangkono, yen sampeyan ngganti salah siji saka wong-wong mau, ana kemungkinan dhuwur ngrusak liyane, kang disambungake menyang pisanan. Lan iki tegese nambah siklus tes kanggo ngenali kabeh masalah luwih dhisik.

Prinsip Pembalikan Ketergantungan (DIP)

10 Prinsip Pemrograman Berorientasi Objek Saben Pangembang Kudu Ngerti

Ndhuwur minangka conto kode ing ngendi AppManager gumantung ing EventLogWriter, sing uga digandhengake karo AppManager. Yen sampeyan butuh cara sing beda kanggo nuduhake kabar, dadi push, SMS utawa email, sampeyan kudu ngganti kelas AppManager.

Masalah bisa ditanggulangi kanthi nggunakake DIP. Dadi, tinimbang AppManager, kita njaluk EventLogWriter, sing bakal dilebokake nggunakake kerangka kasebut.

DIP ndadekake iku bisa kanggo gampang ngganti modul individu karo liyane kanthi ngganti modul dependensi. Iki ndadekake iku bisa kanggo ngganti siji modul tanpa mengaruhi liyane.

Komposisi tinimbang warisan

10 Prinsip Pemrograman Berorientasi Objek Saben Pangembang Kudu NgertiAna rong cara utama kanggo nggunakake maneh kode: warisan lan komposisi, loro-lorone duwe kaluwihan lan cacat dhewe. Biasane sing nomer loro luwih disenengi amarga luwih fleksibel.

Komposisi menehi kemampuan kanggo ngganti prilaku kelas nalika runtime kanthi nyetel properti. Nalika ngleksanakake antarmuka, polimorfisme digunakake, sing menehi implementasine luwih fleksibel.

Malah Jawa Efektif dening Joshua Bloch menehi saran milih komposisi tinimbang warisan.

Barbara Liskov Substitution Principle (LSP)

Prinsip liyane saka toolkit SOLID. Iki nyatakake yen subtipe kudu bisa diganti kanggo supertipe. Tegese, metode lan fungsi sing bisa digunakake karo superclass kudu bisa digunakake tanpa masalah karo subclasse.

LSP digandhengake karo prinsip tanggung jawab tunggal lan prinsip tanggung jawab bareng. Yen kelas nyedhiyakake fungsi luwih akeh tinimbang subkelas, mula kelas kasebut ora ndhukung sawetara fungsi kasebut, nglanggar prinsip iki.

Iki minangka potongan kode sing mbantah LSP.

10 Prinsip Pemrograman Berorientasi Objek Saben Pangembang Kudu Ngerti

Metode area (Rectangle r) ngitung area Rectangle. Program kasebut bakal nabrak sawise nglakokake Square amarga Square dudu Rectangle ing kene. Miturut prinsip LSP, fungsi sing nggunakake referensi kanggo kelas dhasar kudu bisa nggunakake obyek saka kelas asale tanpa instruksi tambahan.

Prinsip iki, sing minangka definisi khusus saka subtipe, diusulake dening Barbara Liskov ing intine konferensi taun 1987 kanthi judhul "Abstraksi Data lan Hierarki," mula jenenge.

Prinsip Split Antarmuka (ISP)

Prinsip SOLID liyane. Miturut iku, antarmuka sing ora digunakake ngirim ora dipun ginakaken. Kanthi prinsip iki mbantu sistem tetep fleksibel lan cocok kanggo refactoring nalika owah-owahan ing logika operasi.

Paling asring, kahanan iki dumadi nalika antarmuka ngemot sawetara fungsi bebarengan, lan klien mung perlu siji saka wong-wong mau.

Wiwit nulis antarmuka minangka tugas sing angel, ngganti sawise karya rampung tanpa ngilangi apa-apa bakal dadi tantangan.

Kauntungan saka prinsip ISP ing Jawa yaiku kabeh metode kudu diimplementasikake dhisik, lan banjur bisa digunakake dening kelas. Mulane, prinsip ndadekake bisa ngurangi jumlah metode.

10 Prinsip Pemrograman Berorientasi Objek Saben Pangembang Kudu Ngerti

Pemrograman kanggo antarmuka, dudu implementasine

Kabeh ing kene jelas saka judhul. Aplikasi prinsip iki ndadΓ©kakΓ© kanggo nggawe kode fleksibel sing bisa digunakake karo sembarang implementasine anyar saka antarmuka.

Sampeyan kudu nggunakake jinis antarmuka kanggo variabel, jinis bali, utawa jinis argumen metode. Conto nggunakake SuperClass tinimbang SubClass.

Iku:

Daftar angka = getNumbers();

Nanging ora:

Angka ArrayList = getNumbers();

Punika implementasine praktis saka apa sing dibahas ing ndhuwur.

10 Prinsip Pemrograman Berorientasi Objek Saben Pangembang Kudu Ngerti

Prinsip delegasi

Conto umum yaiku metode sing padha () lan kode hash () ing Jawa. Yen perlu kanggo mbandhingake rong obyek, tumindak iki didelegasikan menyang kelas sing cocog tinimbang klien.

Kauntungan saka prinsip kasebut yaiku ora ana duplikasi kode lan gampang ngganti prilaku. Iki uga ditrapake kanggo delegasi acara.

10 Prinsip Pemrograman Berorientasi Objek Saben Pangembang Kudu Ngerti

Kabeh prinsip kasebut ngidini sampeyan nulis kode sing luwih fleksibel, ayu lan dipercaya kanthi kohesi dhuwur lan kopling sing kurang. Mesthine, teori kasebut apik, nanging supaya pangembang bisa nggunakake kawruh sing dipikolehi, praktik dibutuhake. Sawise sampeyan wis nguwasani prinsip OOP, langkah sabanjure sampeyan bisa uga sinau pola desain kanggo ngatasi masalah pangembangan piranti lunak umum.

Skillbox nyaranake:

Source: www.habr.com

Add a comment