සංරචක පාදක වස්තු ගෘහ නිර්මාණ ශිල්පයෙහි “පද්ධති” වල කාර්යභාරය කුමක්ද?


178

මම ආයතන සංරචක සහ පද්ධති ගැන බොහෝ දේ කියවා ඇති අතර, ආයතනයක් හැඳුනුම්පතක් වීම පිළිබඳ අදහස තරමක් සිත්ගන්නා සුළු යැයි මම සිතුවෙමි.

කෙසේ වෙතත් මෙය සංරචක අංගය හෝ පද්ධති අංශය සමඟ සම්පූර්ණයෙන්ම ක්‍රියා කරන්නේ කෙසේදැයි මම නොදනිමි. සංරචකයක් යනු කිසියම් අදාළ පද්ධතියක් විසින් කළමනාකරණය කරන දත්ත වස්තුවකි. Isions ට්ටන පද්ධතියක් ගැටුම් සිදුවී ඇත්දැයි තීරණය කිරීම සඳහා අවකාශීය දත්ත ව්‍යුහයක් සමඟ සමහර BoundComponent භාවිතා කරයි.

මේ දක්වා සියල්ල හොඳයි, නමුත් බහු පද්ධතිවලට එකම සංරචකයට ප්‍රවේශය අවශ්‍ය නම් කුමක් කළ යුතුද? දත්ත ජීවත් විය යුත්තේ කොතැනින්ද? ආදාන පද්ධතියකට BoundsComponent යන ආයතන වෙනස් කළ හැකි නමුත් භෞතික විද්‍යා පද්ධතියට (ය) සමහර විදැහුම්කරණ පද්ධතියට සමාන සංරචකයකට ප්‍රවේශය අවශ්‍ය වේ.

එසේම, ආයතන ඉදිකරන්නේ කෙසේද? මා මෙතරම් කියවා ඇති එක් වාසියක් වන්නේ වස්තු ඉදිකිරීමේ නම්‍යතාවයයි. පද්ධති සහජයෙන්ම සං component ටකයක් සමඟ බැඳී තිබේද? මට නව අංගයක් හඳුන්වා දීමට අවශ්‍ය නම්, මටද නව පද්ධතියක් හඳුන්වා දීමට හෝ පවතින පද්ධතියක් වෙනස් කිරීමට අවශ්‍යද?

මා බොහෝ විට කියවා ඇති තවත් දෙයක් නම්, වස්තුවක 'වර්ගය' එහි ඇති සංරචක මගින් අනුමාන කෙරේ. මගේ ආයතනය හුදෙක් හැඳුනුම්පතක් නම්, මගේ රොබෝ වස්තුව වෙනත් පද්ධතියකින් ගෙනයාමට හෝ විදැහුම් කිරීමට හා වෙනස් කිරීමට අවශ්‍ය බව මා දැන ගන්නේ කෙසේද?

දිගු පෝස්ටයට කණගාටුයි (හෝ අවම වශයෙන් එය මගේ දුරකථන තිරයෙන් පෙනේ)!

Answers:


337

වස්තු සංරචක පද්ධති නිරූපණය කිරීමට සහ ක්‍රියාත්මක කිරීමට ක්‍රම රාශියක් ඇත, නමුත් මෙහි එක් ක්‍රමයක් පිළිබඳ පැහැදිලි කිරීමකි. වස්තුව / සංරචක / පද්ධති සැකැස්ම පිළිබඳ නිශ්චිත අර්ථ දැක්වීමක් නොමැති බව මතක තබා ගන්න, එබැවින් මෙය එක් ක්‍රියාත්මක කිරීමක් පමණි.

මම උදව් කළ හැකි වස්තු / සංරචක / පද්ධති සැකසුම් සඳහා ප්‍රතිසමයක් හඳුන්වා දෙන්නෙමි. යතුරක් වැනි වස්තුවක් ගැන සිතමු.

ආයතනය

ආයතන යතුර

යතුරු දත් ඇත (තද නිල්). අපගේ වස්තු යතුරේ දත් එය සෑදෙන සංරචක වේ. එකම දත් තිබුණත් ඔබට ඔවුන්ගේ හැඳුනුම්පතෙන් වෙන්ව ආයතනවලට පැවසිය හැකිය. ඉතින් යතුරු ගැලපෙන්නේ කුමක් ද? අගුල්. අගුල් අපේ පද්ධති. උදාහරණයක් ලෙස, චලන පද්ධතියක්.

පද්ධතිය

චලන පද්ධති අගුල

අගුල ක්‍රියාත්මක වන්නේ අපගේ යතුරේ පිහිටීම හා වේගය යන දෙකම සඳහා දත් ඇත්නම් පමණි. මෙම ක්‍රමය මඟින් ක්‍රියා කරන්නේ ස්ථානයක් සහ ප්‍රවේගයක් ඇති ආයතන පමණි. ක්‍රියාවට නැංවිය යුත්තේ කුමන ආයතනදැයි මෙම පද්ධති හඳුනා ගන්නේ කෙසේද යන්න සැකසීමට විවිධ ක්‍රම තිබේ, නමුත් එක් ක්‍රමයක් වන්නේ a long. සෑම බිට් එකක්ම සංරචක වර්ගයක් සඳහා වෙන් කර ඇත. අපගේ උදාහරණය සඳහා බිට් 64 දිග වෙනුවට බිට් 4 වර්ගයක් උපකල්පනය කරමු. අපගේ උදාහරණ ආයතනයට ලබා ගත හැකි සියලුම සංරචක ඇත. එබැවින් එහි යතුර වනු ඇත 1111. එවිට පද්ධතිය a ඇති ඕනෑම ආයතනයක් සොයයි 11--. ( -නියෝජිතයා ගණන් ගන්නේ නැත, මන්ද ස්ප්‍රයිට් හෝ සෞඛ්‍යයක් තිබේ නම් චලනය ගණන් ගන්නේ නැත). එයට සරල ANDමෙහෙයුමක් සහිත වස්තුවක් පරීක්ෂා කළ හැකිය . එබැවින් අපගේ ආයතනය ගැලපේ ((1111 & 1100) == 1100). මට ඔබව අහිමි වුවහොත් බිට්වේස් මෙහෙයුම් ගැන තවත් කරුණු බලන්න .

ඔබට පෙනෙන පරිදි, පද්ධතිවලට බාහිර සම්පත් වෙත ප්‍රවේශය ඇත. ඔවුන්ට කාලය, ග්‍රැෆික්, ශබ්දය සහ යනාදිය වෙත ප්‍රවේශ විය හැකිය. ඒවා හුදෙක් වරකට එක් යතුරක් ගෙන දත්ත සැකසෙන කුඩා සකසනයන් ය. චලන පද්ධතිය ප්‍රවේගය, ඩෙල්ටා කාලය සහ පිහිටීම ගන්නා බව ඔබට පෙනේ; ඉන්පසු සමහර ගණනය කිරීම් සිදු කර ප්‍රති result ලය නැවත ස්ථානගත කරයි.

වස්තු යතුරු උත්පාදනය කිරීම පහසුය. ඔබට අවශ්‍ය පරිදි ඒවා එකතු කිරීමට හෝ ඉවත් කිරීමට හැකිය. වස්තුව ගණන් ගන්නේ නැත, එය සංරචක කාණ්ඩගත කර තබා ගැනීමේ මාර්ගයක් පමණි. සංරචක එකිනෙකට පරායත්තතාවයක් නොමැත. අපගේ චලන උදාහරණය මෙන්, පද්ධතියක් ඒවා මත ක්‍රියාත්මක වන විට සහ තවත් දත්ත යාවත්කාලීන කිරීම සඳහා දත්ත භාවිතා කරන විට සංරචක එකිනෙකා සමඟ අන්තර්ක්‍රියා කිරීමට ආසන්න වේ.

අදහස ශක්තිමත් කිරීමට වෙනත් පද්ධතියක් දෙස බලමු:

පද්ධති අගුල ඇඳීම

මෙය අපගේ ඇඳීම් පද්ධතියයි. එය ගැලපෙන සංරචක සොයයි 1-1-. මෙම වස්තුව ගැලපෙන්නේ මන්ද: ((1111 & 1010) == 1010)මීට අමතරව, මෙම පද්ධතිය තිරය වෙත තොරතුරු ප්‍රතිදානය කරන බව ඔබට දැක ගත හැකිය.

හරි, තව එකක්. අපි වෙනත් ආයතනයක් දෙස බලමු, එය මෙතෙක් අපගේ ආදර්ශයට ගැලපෙන්නේ කෙසේදැයි බලමු.

චලනය කළ නොහැකි වස්තු යතුර

ඔබට පෙනෙන පරිදි, මෙම ආයතනයට අමුණා ඇති සංරචක අඩුය. එහි ඇති සංරචක දෙස බැලීමෙන් පෙනෙන්නේ එය පර්වතයක් වැනි ස්ථිතික අයිතමයක් විය හැකි බවයි. එයට ඇත්තේ ස්ථානයක් සහ ස්ප්‍රයිට් ය. එය චලනය වීමට යන්නේ නැති අතර සෞඛ්‍ය වෙනස්වීම් වලට එය බලපාන්නේ නැත. මෙම ආයතනය 1010 යතුරක් නිපදවනු ඇත. ඉතින් මෙම ආයතනය මත ක්‍රියාත්මක වන පද්ධති මොනවාද? පරීක්ෂා කරමු:

අපගේ චලන පද්ධතියට එරෙහිව: නැත ((1010 & 1100) != 1100). චලන පද්ධතිය මෙම ආයතනය ගැන තැකීමක් නොකරන බව පෙනේ, එයට අවශ්‍ය සංරචක නොමැති නිසා.

අපේ ඇඳීම් පද්ධතියට එරෙහිව: ((1010 & 1010) == 1010)හේයි, එය ගැලපීමක්. මෙම ආයතනය චිත්‍ර ඇඳීමේ පද්ධතිය මඟින් ක්‍රියාත්මක වේ. ඇඳීම් පද්ධතිය අර්ථ දක්වා ඇති ස්ථානයට ස්ප්‍රයිට් අඳිනු ඇත.


අපගේ සංරචක රැගෙන ඒවා ක්‍රියාත්මක වන වෙනත් පද්ධතියක් දැන් එකතු කිරීම කොතරම් පහසුදැයි ඔබට දැක ගත හැකිය. මම ඔබේ ප්‍රශ්නවලට පිළිතුරු දුන් බව සහතික කිරීමට මට ඉඩ දෙන්න:

බහු පද්ධතිවලට එකම සංරචකයට ප්‍රවේශය අවශ්‍ය නම් කුමක් කළ යුතුද? දත්ත ජීවත් විය යුත්තේ කොතැනින්ද?

සාමාන්‍යයෙන් පද්ධති එකින් එක ක්‍රියාත්මක වේ. ඔවුන් ඔවුන්ගේ අවශ්‍යතාවන්ට ගැලපෙන සියලුම ආයතන ක්‍රියාවට නංවයි, ඉන්පසු ඊළඟ ක්‍රමය එකම දේ කරයි. දත්ත ආයතනය සමඟ ජීවත් වේ. පද්ධතිය තුළ කිසිවක් ගබඩා නොවිය යුතුය, එය හැරෙන අගුලක් පමණි, ප්‍රධාන දෙය නම් තොරතුරු රැඳී සිට අගුලේ සිට අගුල දක්වා ගමන් කිරීමයි.

ආයතන ඉදිකරන්නේ කෙසේද? පද්ධති සහජයෙන්ම සං component ටකයක් සමඟ බැඳී තිබේද? මට නව අංගයක් හඳුන්වා දීමට අවශ්‍ය නම්, මටද නව පද්ධතියක් හඳුන්වා දීමට හෝ පවතින පද්ධතියක් වෙනස් කිරීමට අවශ්‍යද?

ආයතන යනු සංරචක මලු පමණි. ඔවුන්ට අද්විතීය හැඳුනුම්පතක් සහ සංරචක ලැයිස්තුවක් ඇත. පද්ධති බැඳී ඇත්තේ ඉහත විස්තර කර ඇති ආකාරයට පමණි. ඒවා ක්‍රියාත්මක වන පද්ධති නොමැතිව ඔබට සංරචක තිබිය හැකිය, නමුත් එය අර්ථ විරහිත ය. ඒ හා සමානව ඔබට කිසිදු ආයතනයක් නොමැති සංරචක සොයන පද්ධති තිබිය හැකිය. එය අර්ථ විරහිත ය, මන්ද යත්, ඔවුන්ගේ අගුලට ගැලපෙන වස්තුවක් නිර්මාණය වන තෙක් ඔවුන් බලා සිටින බැවිනි. ඉතින්, ඔව්, ඔබ නව අංගයක් හඳුන්වා දුන්නොත්, ඔබට අවශ්‍ය වන්නේ එම සංරචකය භාවිතා කරන පද්ධතියක් සෑදීමයි. එසේ නොමැතිනම් ඔබ නොපවතින අගුලක් සඳහා ඔබේ යතුරට දත් එකතු කරයි.

මගේ ආයතනය හුදෙක් හැඳුනුම්පතක් නම්, මගේ රොබෝ වස්තුව වෙනත් පද්ධතියකින් ගෙනයාමට හෝ විදැහුම් කිරීමට හා වෙනස් කිරීමට අවශ්‍ය බව මා දැන ගන්නේ කෙසේද?

longවස්තුවක අඩංගු සංරචක නිර්වචනය කරන යතුරක අදහස සමඟ මම මේ සඳහා පිළිතුරු සපයමි යැයි සිතමි . යතුර අගුලට ගැලපෙන නිසා ඔබ දන්නවා.

පියු! එය දිගු තනතුරක් විය! (හෝ අවම වශයෙන් එය මගේ විශාල මොනිටරයෙන් පෙනේ.)


23
දැන් සමස්ත අදහසම තේරුම් ගැනීමට මෙම ප්‍රධාන ප්‍රතිසමය සැබවින්ම උපකාරී වේ. දීප්තිමත් අදහස! ඔබේ අන්තිම ඡේදයට ලොල් කරන්න :)
bio595

16
+1 මා මෙතෙක් දැක ඇති වස්තු-සංරචක පද්ධතිය පිළිබඳ ශ්‍රේෂ් greatest තම හා හොඳම පැහැදිලි කිරීම සඳහා. : ඕ!
නයිට් 666

7
-1 මා වෙතින් - මෙය නරක ප්‍රවේශයක් නිසා නොව, එය ප්‍රවේශය ලෙස නිරූපණය කර ඇති නිසා ය. එහෙත් සංරචක සහ සේවාවන් වෙන් නොකෙරෙන බොහෝ පද්ධති තිබේ (උදා: ඒකීයතාවයේ), සහ කුමන ආයතන සැකසිය යුතු දැයි දැන ගැනීමට පද්ධති සඳහා සරල ක්‍රම තිබේ (ආයතනය නිර්මාණය වූ විට ඒවා එකතු කරන්න).
Kylotan

38
Y කයිලොටන් මම කියන්නේ " මෙම පද්ධති සැකසීමට කුමන ආයතන හඳුනාlong ගන්නේද යන්න සැකසීමට විවිධ ක්‍රම තිබේ, නමුත් එක් ක්‍රමයක් වන්නේ එය භාවිතා කිරීමයි . " මීට අමතරව, මම සාමාන්‍යයෙන් පහල ඡන්දය ප්‍රයෝජනවත් නොවන පිළිතුරු සඳහා වෙන් කරමි (හෝවර් පා text ය ලෙස) පවසයි). ඔවුන් ආමන්ත්‍රණය කරන මාතෘකා වලින් 100% ක් ආවරණය නොවන සියලුම පිළිතුරු සඳහා ඔබ එය කළහොත් ඔබ ඡන්දය ප්‍රකාශ කිරීම සඳහා වැඩි කාලයක් ගත කරනු ඇතැයි මම සිතමි.
මයිකල්හවුස්

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.