Rumah  >  Artikel  >  Java  >  Apakah prinsip reka bentuk Java bagi Penyongsangan Ketergantungan?

Apakah prinsip reka bentuk Java bagi Penyongsangan Ketergantungan?

PHPz
PHPzke hadapan
2023-05-12 21:10:04799semak imbas

Pengenalan kepada Penyongsangan Ketergantungan

Kita sering mendengar istilah penyongsangan ketergantungan, penyongsangan ketergantungan, penyongsangan kawalan, suntikan ketergantungan dan IOC semasa proses pembangunan rangka kerja ini adalah antara pembangunan dan reka bentuk prinsip. Prinsip Penyongsangan Ketergantungan adalah berkaitan . Saya bertanya satu soalan Nama penuh IOC ialah Inversion of Controller tidak semestinya ciri Spring ialah rangka kerja asas yang menggunakan IOC . Menyusahkan apabila ia perlu diubah, kebenaran dikawal sepenuhnya oleh pembangun, ia bermakna bahawa melalui beberapa corak reka bentuk, pembangun tidak berkembang berdasarkan perhubungan selagi fungsi yang harus dilaksanakan dikawal oleh program;

  • Dependency Injection (DI), nama penuhnya Dependency Injection Pemahaman mudah ialah objek yang perlu dikendalikan dibina melalui pembina, dapatkan/. set, dan antara muka, dan objek baharu disuntik melalui objek luaran yang dihantar masuk. Ini adalah suntikan kebergantungan, dan Spring adalah lebih baik untuk menggunakan rangka kerja A; , nama penuhnya ialah Prinsip Inversi Ketergantungan, yang juga boleh dipanggil Prinsip Inversi Ketergantungan, yang bermaksud:

    modul peringkat tinggi ) Jangan bergantung pada modul peringkat rendah (peringkat rendah). Modul peringkat tinggi dan modul peringkat rendah harus bergantung antara satu sama lain melalui abstraksi. Selain itu, abstraksi tidak seharusnya bergantung pada butiran pelaksanaan khusus, yang bergantung pada abstraksi
  • ; adakah kita sering merujuk sebagai modul tinggi dan modul rendah? Bagaimana kita membezakan, atau menandakan hubungan semasa melukis;
  • . Mengapa reka bentuk sedemikian digunakan? Puncanya ialah gandingan longgar Jika tidak, modul peringkat tinggi sangat terikat dengan modul peringkat rendah, dan modul peringkat tinggi tidak akan terjejas oleh kod modul peringkat rendah adakah benar-benar perlu untuk mematuhi peraturan ini dalam senario sebenar? Mari kita lihat contoh biasa:

    Seni bina MVC: Kaedah yang biasa digunakan ialah Pengawal-->Perkhidmatan-->Dao Controller ialah modul tinggi untuk Perkhidmatan dan Perkhidmatan juga merupakan modul tinggi untuk Dao. , tetapi kami membangunkan secara langsung melalui suntikan dalam senario perniagaan sebenar Sudah tentu, sesetengah mungkin tidak menyuntik secara langsung dan mendapatkan objek melalui antara muka, yang akan meningkatkan kos kerja.
  • Kemudian kita akan mempunyai soalan, adakah dengan menggunakan prinsip ini akan meningkatkan kos kerja? Menurut pemahaman saya, modul juga harus dibahagikan kepada butiran, dan juga perlu dibahagikan kepada hubungan antara modul, hubungan utama antara kod, hubungan reka bentuk rangka kerja asas, dan hubungan kod perniagaan tidak Bagaimana untuk mengembangkan, tidak perlu menggunakan prinsip ini.

    Prinsip Hollywood

    Prinsip Hollywood adalah kependekan dari Jangan hubungi kami, kami akan menghubungi anda Mengikut sains popular, di Hollywood, selepas menyerahkan resume anda kepada syarikat hiburan, anda boleh pulang sahaja dan tunggu. Memandangkan syarikat seni persembahan mempunyai kawalan penuh ke atas keseluruhan projek hiburan, pelakon hanya boleh menerima tugasan syarikat secara pasif dan menyelesaikan persembahan mereka apabila perlu. Ini bertepatan dengan prinsip penyongsangan pergantungan kami Semua prinsip penyongsangan pergantungan juga dipanggil prinsip Hollywood.
Perwujudan khusus prinsip Hollywood ialah corak kaedah templat Semua komponen adalah pasif, dan bekas bertanggungjawab untuk semua pemulaan dan pemanggilan komponen. Ini juga merupakan satu perkara yang perlu dipertimbangkan oleh rangka kerja asas terutamanya yang mempunyai faedah berikut:

Apakah prinsip reka bentuk Java bagi Penyongsangan Ketergantungan?Sokongan untuk pengaturcaraan berasaskan antara muka


Kurangkan. tunggal dan abstraksi Kebergantungan kilang

Kurangkan gandingan antara perniagaan dan rangka kerja

Komponen perniagaan boleh diguna semula dan boleh dipasang

Bergantung pada rangka kerja Spring

Kita perlu menjelaskan konsep bahawa IOC ialah ciri Spring, yang menjadikan ciri rangka kerja Spring itu bukan kerana rangka kerja Spring mencipta IOC.
  • Apakah peranan IOC Spring? Apa yang dipanggil IOC ialah

    Bekas IOC Spring bertanggungjawab untuk kitaran hayat objek dan hubungan antara objek

  • Objek yang disuntik Spring IOC menyediakan objek bergantung dengan cara berikut: Suntikan konstruktor , suntikan kaedah stter, suntikan antara muka.

    Suntikan pembina
  • Suntikan pembina, seperti namanya, bermakna objek yang disuntik membolehkan orang luar mengetahui objek bergantung yang diperlukannya dengan mengisytiharkan senarai parameter objek bergantung dalam kaedah pembinaannya. Suntikan pembina agak mudah, dan ia boleh digunakan sepenuhnya selepas pembinaan selesai melalui kaedah pembinaan.

    <code>TestBean(Test test){<br>      this.test = test;<br>}</code>

    Suntikan kaedah setter

    Untuk objek JavaBean, kami biasanya mengakses dan menetapkan sifat objek melalui kaedah getter dan setter. Oleh itu, objek semasa hanya perlu menyediakan kaedah penetap yang sepadan untuk objek yang bergantung padanya, dan objek bergantung yang sepadan boleh ditetapkan kepada objek yang disuntik melalui kaedah ini. Berbanding dengan suntikan konstruktor, suntikan setter lebih santai dan fleksibel Ia boleh disuntik pada bila-bila masa

    <code>public class TestBean {<br><br>    private Test test;<br><br>    public void setTestBean(Test test) {<br>        this.test = test;<br>    }<br>}</code>

    Suntikan antara muka

    Suntikan antara muka lebih mendominasi kerana ia memerlukan Objek yang bergantung melaksanakan antara muka yang tidak diperlukan, jadi kita mesti menggunakan senario ini secara munasabah Secara amnya, ia jarang wujud dalam rangka kerja asas, tetapi ia lebih banyak digunakan dalam bidang perniagaan.

    Suntikan Anotasi

    Kini, kaedah suntikan arus perdana Spring dilaksanakan terutamanya melalui anotasi, yang semuanya berdasarkan meta-anotasi @Component, yang menjana banyak anotasi terbitan dengan @Component.

    rreeee

Atas ialah kandungan terperinci Apakah prinsip reka bentuk Java bagi Penyongsangan Ketergantungan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam