JavaRush /Blog Jawa /Random-JV /Bedane pola Negara lan Strategi ing Jawa
0xFF
tingkat
Донецк

Bedane pola Negara lan Strategi ing Jawa

Diterbitake ing grup
Supaya bisa nggunakake pola State lan Strategy kanthi bener ing aplikasi inti Jawa, penting kanggo programer Java sing ngerti bedane kanthi jelas. Senajan loro pola, Negara lan Strategi, duwe struktur sing padha, lan loro-lorone adhedhasar prinsip mbukak / ditutup, makili "O" ing prinsip SOLID , padha temen beda ing maksud . Bedane pola Negara lan Strategi ing Jawa - 1Pola Strategi ing Jawa digunakake kanggo encapsulate set algoritma sing gegandhengan kanggo nyedhiyakake keluwesan eksekusi kanggo klien. Klien bisa milih algoritma apa wae nalika runtime tanpa ngganti konteks kelas sing nggunakake file Strategy. Sawetara conto populer saka pola Strategi yaiku nulis kode sing nggunakake algoritma, kayata enkripsi, kompresi, utawa ngurutake. Ing sisih liya, pola Negara ngidini obyek tumindak kanthi beda ing negara liya. Amarga ing donya nyata obyek asring negara, lan tumindak beda ing negara beda, Contone, mesin vending mung ngedol barang yen ana ing negara hasCoin, ora ngedol nganti sijine duwit receh ing. Saiki sampeyan bisa ndeleng kanthi jelas bedane antarane pola Strategi lan Negara, iki beda maksud. Pola Negara mbantu obyek ngatur negara, dene pola Strategi ngidini klien milih prilaku sing beda. Bedane liyane sing ora gampang dideleng yaiku sapa sing nyebabake owah-owahan prilaku. Ing kasus pola Strategi, iki minangka klien sing nyedhiyakake macem-macem strategi kanggo konteks; ing pola Negara, transisi dikontrol dening konteks utawa kahanan obyek kasebut dhewe. Kajaba iku, yen sampeyan ngatur owah-owahan negara ing obyek Negara dhewe, kudu ana referensi kanggo konteks, contone, mesin vending kudu bisa nelpon cara setState()kanggo ngganti kahanan saiki konteks. Ing sisih liya, obyek Strategi ora tau ngemot referensi kanggo konteks; klien dhewe ngliwati Strategi sing dipilih menyang konteks kasebut. Bedane pola State lan Strategy minangka salah sawijining pitakonan wawancara populer babagan pola Jawa , ing artikel babagan pola Jawa iki kita bakal nliti kanthi luwih rinci. Kita bakal njelajah sawetara podho lan beda antarane pola Strategi lan Negara ing Jawa sing bakal mbantu sampeyan nambah pemahaman babagan pola kasebut.

Persamaan antarane pola Negara lan Strategi

Yen katon ing diagram UML saka negara lan Strategy pola, sampeyan bakal sok dong mirsani sing loro katon padha kanggo saben liyane. Obyek sing nggunakake Negara kanggo ngganti prilaku kasebut dikenal minangka Context-obyek, uga obyek sing nggunakake Strategi kanggo ngganti prilaku diarani minangka Contextobyek. Elinga yen klien sesambungan karo Context-obyek. Ing kasus pola Negara, konteks delegasi metode nelpon menyang obyek Negara, sing dianakake minangka obyek saiki, lan ing kasus pola Strategi, konteks nggunakake obyek Strategi minangka parameter utawa diwenehake sajrone nggawe. saka konteks obyek. Diagram UML saka pola Negara ing Jawa Bedane pola Negara lan Strategi ing Jawa - 2 Diagram UML kanggo pola Negara iki nggambarake masalah klasik nggawe desain mesin vending berorientasi obyek ing Jawa. Sampeyan bisa ndeleng sing negara mesin vending dituduhake nggunakake antarmuka, kang banjur duwe implementasine kanggo makili negara tartamtu. Saben negara uga nduweni referensi kanggo konteks obyek kanggo nggawe transisi menyang negara liyane minangka asil saka tumindak disebut ing konteks. Diagram UML saka pola Strategi ing Jawa Bedane pola Negara lan Strategi ing Jawa - 3 Diagram UML kanggo pola Strategi iki ngemot macem-macem implementasi fungsional. Amarga ana akeh algoritma ngurutake, pola desain iki ngidini klien milih algoritma nalika ngurutake obyek. Nyatane, kerangka Java Collection nggunakake pola iki kanggo ngetrapake metode Collections.sort()sing digunakake kanggo ngurutake obyek ing Jawa. Bentenipun mung sing tinimbang ngidini klien kanggo milih algoritma ngurutake, iku ngidini kanggo nemtokake strategi comparison dening maringaken Kayata saka Comparator utawa Comparable antarmuka kanggo Jawa . Ayo goleki sawetara persamaan antarane rong pola desain utama ing Jawa:
  1. Loro-lorone pola, Negara lan Strategi, nggawe gampang kanggo nambah negara lan strategi anyar tanpa mengaruhi konteks obyek sing nggunakake.

  2. Loro-lorone iki njaga kode sampeyan miturut prinsip mbukak / ditutup , tegese desain bakal mbukak kanggo ekstensi nanging ditutup kanggo modifikasi. Ing kasus pola Negara lan Strategi, konteks obyek ditutup kanggo modifikasi, introduksi Negara anyar utawa Strategi anyar, utawa sampeyan ora perlu ngowahi konteks negara liya, utawa owah-owahan minimal.

  3. Kaya konteks obyek sing diwiwiti kanthi status initialization obyek ing pola Negara, konteks obyek uga nduweni strategi standar ing kasus pola Strategi ing Jawa.

  4. Pola Negara nggambarake prilaku sing beda-beda ing wangun negara obyek sing beda-beda, dene pola Strategi nggambarake prilaku sing beda ing wangun strategi obyek sing beda.

  5. Loro-lorone pola, Strategi lan Negara, gumantung ing subclass saka implementasine prilaku. Saben strategi konkrit ngluwihi Strategi Abstrak; saben negara minangka subkelas antarmuka utawa kelas abstrak sing digunakake kanggo makili Negara.

Bedane Strategi lan Pola Negara ing Jawa

Dadi saiki kita ngerti yen pola Negara lan Strategi padha karo struktur, nanging tujuane beda. Ayo goleki sawetara prabédan utama ing antarane pola desain kasebut.
  1. Pola Strategy encapsulates pesawat saka kalkulus related, lan ngidini klien nggunakake prilaku diijolke senadyan komposisi lan delegasi ing runtime, ing tangan liyane, pola Negara mbantu kelas nuduhake prilaku beda ing negara beda.

  2. Bentenane sabanjure antarane pola Negara lan Strategi yaiku Negara ngemot kahanan obyek, dene pola Strategi ngemot algoritma utawa strategi. Wiwit negara digandhengake karo obyek, ora bisa digunakake maneh, nanging kanthi ngilangi strategi utawa algoritma saka konteks, kita bisa nggunakake maneh.

  3. Ing pola Negara, negara pribadi bisa ngemot referensi kanggo konteks kanggo ngleksanakake transisi antarane negara, nanging Strategy ora ngemot referensi kanggo konteks ngendi iku digunakake.

  4. Implementasine saka Strategy bisa liwati minangka parameter kanggo obyek sing bakal nggunakake, contone Collection.sort () njupuk Comparator kang strategi. Ing sisih liya, negara minangka bagean saka konteks obyek kasebut, lan liwat wektu transisi konteks obyek saka negara siji menyang negara liyane.

  5. Sanajan Strategi lan Negara ngetutake prinsip mbukak / tertutup, Strategi uga ngetutake Prinsip Tanggung Jawab Tunggal amarga saben Strategi ngemot algoritma individu, strategi sing beda-beda gumantung saka siji liyane. Ngganti siji strategi ora mbutuhake ngganti strategi liyane.

  6. Bedane teoritis liyane ing antarane pola Strategi lan Negara yaiku pangripta nemtokake bagean "Carane" obyek kasebut, contone "Carane" obyek ngurutake data, ing sisih liya, pola Negara nemtokake "apa" lan "kapan" bagean saka obyek, contone, apa obyek bisa nindakake nalika ana ing negara tartamtu.

  7. Urutan transisi negara ditetepake kanthi apik ing pola Negara; ora ana syarat kasebut kanggo pola Strategi. Klien bebas milih implementasine saka Strategi sing dipilih.

  8. Sawetara conto umum saka pola Strategi yaiku enkapsulasi algoritma, kayata algoritma ngurutake, algoritma enkripsi, utawa algoritma kompresi. Yen sampeyan ndeleng kode sampeyan kudu nggunakake macem-macem algoritma sing gegandhengan, sampeyan kudu nimbang nggunakake pola Strategi. Ing sisih liya, ngerteni panggunaan pola Negara cukup gampang, yen sampeyan kudu ngatur transisi negara lan negara tanpa akeh pernyataan kondisional, pola Negara minangka pola sing tepat kanggo digunakake.

  9. Sing pungkasan nanging salah siji saka beda paling penting antarane Negara lan pola Strategy iku owah-owahan kanggo Strategy dileksanakake dening Klien, nalika owah-owahan kanggo Negara bisa dileksanakake dening konteks utawa negara obyek dhewe.

Iki kabeh babagan bedane pola Negara lan Strategi ing Jawa . Kaya sing dakkandhakake, loro-lorone katon padha ing kelas lan diagram UML, loro-lorone nyedhiyakake prinsip mbukak / ditutup lan prilaku encapsulate. Gunakake pola Strategy kanggo encapsulate algoritma utawa strategi sing kapapar konteks ing runtime, mbok menawa minangka parameter utawa obyek gabungan, lan nggunakake pola State kanggo kontrol transisi negara ing Jawa. Asli kene
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION