“උරුමයට වඩා අනුග්‍රහය දැක්වීම” යන සංකල්පය පැමිණෙන්නේ කොහෙන්ද?


146

පසුගිය මාස කිහිපය තුළ, "උරුමයට වඩා වාසිදායක සංයුතිය" යන මන්ත්‍රය කොතැනකවත් නොපවතින අතර ක්‍රමලේඛන ප්‍රජාව තුළ යම් ආකාරයක මතකයක් බවට පත්ව ඇත. මම එය දකින සෑම අවස්ථාවකම, මම ටිකක් අද්භූතයි. එය හරියට “මිටියට වඩා සරඹ කරන්න” යැයි යමෙකු කීවාක් මෙනි. මගේ අත්දැකීම් අනුව, සංයුතිය සහ උරුමය යනු විවිධ භාවිත අවස්ථා සහිත විවිධ මෙවලම් දෙකක් වන අතර, ඒවා එකිනෙකට හුවමාරු කළ හැකි ඒවා ලෙස සැලකීම සහ එකක් අනෙකට වඩා සහජයෙන්ම උසස් යැයි හැඟීම අර්ථවත් නොවේ.

එසේම, උරුමය නරක වන්නේ ඇයි සහ සංයුතිය හොඳ වන්නේ මන්ද යන්න පිළිබඳ සැබෑ පැහැදිලි කිරීමක් මා කිසි විටෙකත් නොදකිමි , එය මා වඩාත් සැක සහිත කරයි. එය හුදෙක් ඇදහිල්ල මත පිළිගත යුතුද? ලිස්කොව් ආදේශනය සහ බහුමාපකය ප්‍රකට, පැහැදිලි-කැපූ ප්‍රතිලාභ ඇති අතර, IMO වස්තු-නැඹුරු වැඩසටහන්කරණය භාවිතා කිරීමේ සමස්ත ලක්ෂ්‍යයෙන් සමන්විත වන අතර ඒවා සංයුතියට පක්ෂව ඉවත දැමිය යුත්තේ මන්දැයි කිසිවෙකු පැහැදිලි නොකරයි.

මෙම සංකල්පය පැමිණියේ කොහෙන්දැයි කිසිවෙකු දන්නවාද, එහි පිටුපස ඇති තාර්කිකත්වය කුමක්ද?


47
අනෙක් අය පෙන්වා දී ඇති පරිදි, එය බොහෝ කාලයක් ගත වී ඇත - මට පුදුමයි ඔබ දැන් ඒ ගැන අසා ඇති බව. ඕනෑම වේලාවක ජාවා වැනි භාෂාවලින් විශාල පද්ධති ගොඩනඟා ඇති ඕනෑම කෙනෙකුට එය බුද්ධිමත් ය. මා ලබා දෙන ඕනෑම සම්මුඛ පරීක්ෂණයක හරය එය වන අතර අපේක්ෂකයෙකු උරුමය ගැන කතා කිරීමට පටන් ගත් විට, ඔවුන්ගේ නිපුණතා මට්ටම සහ අත්දැකීම් ප්‍රමාණය ගැන සැක කිරීමට පටන් ගනිමි. මෙහි උරුම වූ භංගුර විසඳුමක් (බොහෝ බොහෝ අය සිටිති) වන්නේ ඇයි හොඳ හඳුන්වා තියෙන්නේ: artima.com/lejava/articles/designprinciples4.html
Janx

6
An ජෑන්ක්ස්: සමහර විට එහෙමයි. මම ජාවා වැනි භාෂාවලින් විශාල පද්ධති ගොඩනඟන්නේ නැත; මම ඒවා ඩෙල්ෆි හි ගොඩනඟන අතර, ලිස්කොව් ආදේශනය සහ බහුමාපකය නොමැතිව අපට කිසි විටෙකත් කිසිවක් සිදු නොවනු ඇත. එහි වස්තු ආකෘතිය ජාවා හෝ සී ++ වලට වඩා යම් ආකාරයකින් වෙනස් වන අතර, මෙම උපරිමය විසඳීමට අදහස් කරන බව පෙනෙන බොහෝ ගැටලු ඩෙල්ෆි හි සැබවින්ම නොපවතී. විවිධ දෘෂ්ටි කෝණයන්ගෙන් වෙනස් දෘෂ්ටිකෝණයන්, මම හිතන්නේ.
මේසන් වීලර්

14
ඩෙල්ෆි හි සාපේක්ෂව විශාල පද්ධති සහ උස උරුම ගස් සෑදීම සඳහා මම වසර ගණනාවක් ගත කළෙමි. SOLID මූලධර්ම කෙරෙහි ඔබේ අවධානය යොමු කිරීම මඟින් ඔබ ඩෙල්ෆි භාවිතා කිරීම නොව ගැටළුව මඟහරවා ගැනීමට උපකාරී වනු ඇතැයි මම සැක කරමි.
බෙවන්

8
පසුගිය මාස කිහිපය?!?
ජාස්

6
IMHO එම සංකල්පය කිසි විටෙකත් අතුරු මුහුණත් උරුමය (එනම් පිරිසිදු අතුරුමුහුණත් සමඟ උප වර්ග කිරීම) සහ ක්‍රියාත්මක කිරීමේ උරුමය යන දෙකටම අනුබල දෙන විවිධ භාෂාවන්ට සම්පූර්ණයෙන්ම ගැලපෙන්නේ නැත. බොහෝ අය මෙම මන්ත්‍රය අනුගමනය කරන අතර ප්‍රමාණවත් අතුරුමුහුණත් භාවිතා නොකරන්න.
යූරි

Answers:


140

GoF ට බොහෝ කලකට පෙර මම සංයුතිය-එදිරිව-උරුමය පිළිබඳ සාකච්ඡා අසා ඇති බව මා සිතුවත්, නිශ්චිත ප්‍රභවයක් වෙත මගේ ඇඟිල්ල තැබිය නොහැක. කෙසේ හෝ බූච් විය හැකිය.

<rant>

අහ් නමුත් බොහෝ මන්ත්‍ර මෙන් මෙයද සාමාන්‍ය රේඛා ඔස්සේ පිරිහී ඇත:

  1. මුල් සංකීර්ණ සාකච්ඡාවේ මතක් කිරීමක් ලෙස අල්ලා ගැනීමේ වාක්‍ය ඛණ්ඩය නිර්මාණය කරන ගෞරවනීය ප්‍රභවයක් විසින් එය සවිස්තරාත්මක පැහැදිලි කිරීමක් හා තර්කයක් සමඟ හඳුන්වා දෙනු ලැබේ.
  2. සාමාන්‍යයෙන් n00b වැරදි ගැන අදහස් දැක්වීමේදී, දැනුවත්ව සිටින කිහිප දෙනෙකු විසින් එය දැනුවත්ව සිටින කිහිප දෙනෙකුගේ දැනුමක් ඇති කොටසක් සමඟ බෙදා ගනී.
  3. පැහැදිලි කිරීම කියවා නැති දහස් ගණනක් දෙනා එය ඉතා ඉක්මණින් සිහිසුන්ව පුනරුච්චාරණය කරයි, නමුත් එය නොසිතන නිදහසට කරුණක් ලෙස සහ අන් අයට වඩා උසස් යැයි හැඟීමට ලාභ සහ පහසු ක්‍රමයක් ලෙස භාවිතා කිරීමට ආදරය කරයි
  4. අවසානයේදී, සාධාරණ නිදොස් කිරීමකින් “වඩදිය බාදිය” වළක්වා ගත නොහැකි අතර, එම ආදර්ශය ආගම හා ප්‍රවාදයට පිරිහෙයි.

මුලින් අදහස් කළේ n00bs light ානාලෝකය කරා ගෙන යාමයි, දැන් ඔවුන් සිහිසුන්ව ඇද වැටීම සඳහා සමාජ ශාලාවක් ලෙස භාවිතා කරයි.

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

කරුණාකර සිතා බලන්න ඔබේ සැලසුම් ගැන, සටන් පාඨ දසුනකි නවත්වන්න.

</rant>


16
බූච් තර්ක කරන්නේ ක්‍රියාත්මක කිරීමේ උරුමය පන්ති අතර ඉහළ සම්බන්ධතාවයක් හඳුන්වා දෙන බවයි. අනෙක් අතට, ක්‍රියා පටිපාටි ක්‍රමලේඛන වලින් OOP වෙන්කර හඳුනා ගන්නා ප්‍රධාන සංකල්පය උරුමය ලෙස ඔහු සලකයි.
නෙමන්ජා ට්‍රිෆුනොවික්

14
මේ වගේ දෙයක් සඳහා වචනයක් තිබිය යුතුයි. නොමේරූ පුනර්ජීවනය , සමහර විට?
J Wrg W Mittag

8
@ ජෝර්ග්: නොමේරූ පුනර්ජීවනය වැනි යෙදුමකට කුමක් සිදුවේදැයි ඔබ දන්නවාද? ඉහත විස්තර කර ඇති දේ හරියටම. :) (Btw. පුනර්ජීවනය කවදා හෝ නොමේරූ විට?)
Bjarke Freund-Hansen

7
@ නෙමන්ජා: හරි. ප්‍රශ්නය වන්නේ මෙම සම්බන්ධතාවය සැබවින්ම නරකද යන්නයි. පංති සංකල්පමය වශයෙන් ප්‍රබල ලෙස සම්බන්ධ වී සංකල්පමය වශයෙන් සුපිරි ටයිප්-උප ප්‍රභේද සම්බන්ධතාවයක් ගොඩනඟා ගන්නේ නම් සහ භාෂා මට්ටමින් විධිමත් ලෙස විසන්ධි කළද ඒවා කිසි විටෙකත් හිතාමතාම විකේතනය කළ නොහැකි නම්, ශක්තිමත් බැඳීම හොඳයි.
dsimcha

5
මන්ත්‍රය සරල ය, "ඔබට ඕනෑම දෙයක් මෙන් සෙල්ලම්-දෝ හැඩ ගැස්විය හැකි නිසා, ඔබ සෙල්ලම්-දෝ වලින් සියල්ල සෑදිය යුතු යැයි අදහස් නොකෙරේ." ;)
ඉවාන් ප්ලේස්

76

අත්දැකීමක්.

ඔබ පවසන පරිදි ඒවා විවිධ රැකියා සඳහා මෙවලම් වේ, නමුත් වාක්‍ය ඛණ්ඩය පැමිණියේ මිනිසුන් එය ඒ ආකාරයෙන් භාවිතා නොකිරීම නිසාය.

උරුමය මූලික වශයෙන් බහුමාමක මෙවලමකි, නමුත් සමහර අය, ඔවුන්ගේ පසුකාලීන අනතුරට බොහෝ සෙයින්, එය කේතය නැවත භාවිතා කිරීමේ / බෙදා ගැනීමේ ක්‍රමයක් ලෙස භාවිතා කිරීමට උත්සාහ කරති. තාර්කිකත්වය “මට උරුම වුවහොත් මට සියලු ක්‍රම නොමිලේ ලැබෙනු ඇත”, නමුත් මෙම පංති දෙකෙහි බහුඅවයවික සම්බන්ධතාවයක් නොමැති බව නොසලකා හැරීම.

ඉතින් උරුමයට වඩා සංයුතියට අනුග්‍රහය දක්වන්නේ ඇයි - පංති අතර සම්බන්ධතාවය බහුමාමක නොවන නිසා. එය හුදෙක් පවතින්නේ උරුමයෙන් දණහිසට ප්‍රතිචාර නොදක්වන ලෙස මිනිසුන්ට මතක් කිරීමටය.


7
එබැවින් මූලික වශයෙන්, ඔබට "ලිස්කොව් ආදේශනය තේරෙන්නේ නැත්නම් ඔබ මුලින් OOP භාවිතා නොකළ යුතුය" යනුවෙන් පැවසිය නොහැක, එබැවින් ඔබ කියන්නේ "උරුමයට වඩා සංයුතියට අනුග්‍රහය දක්වන්න" යන්න වෙනුවට අකාර්යක්ෂමතාවයෙන් සිදුවන හානිය සීමා කිරීමේ උත්සාහයක් ලෙසය. කෝඩර්ස්?
මේසන් වීලර්

14
Ason මේසන්: ඕනෑම මන්ත්‍රයක් මෙන්, “උරුමයට වඩා අනුග්‍රහය දැක්වීම” ආරම්භක ක්‍රමලේඛකයින් ඉලක්ක කර ගනී. උරුමය භාවිතා කළ යුත්තේ කවදාද සහ සංයුතිය භාවිතා කළ යුත්තේ කවදාදැයි ඔබ දැනටමත් දන්නේ නම්, එවැනි මන්ත්‍රයක් පුනරාවර්තනය කිරීම තේරුමක් නැති වැඩකි.
ඩීන් හාඩිං

7
E ඩීන් - ආරම්භකයා උරුමයේ හොඳම භාවිතයන් තේරුම් නොගන්නා කෙනෙකුට සමාන බව මට විශ්වාස නැත . මම හිතන්නේ ඊට වඩා වැඩි යමක් ඇත. දුර්වල උරුමය මගේ රැකියාවේ බොහෝ හිසරදයන්ට හේතුව වන අතර එය "ආරම්භකයින්" ලෙස සලකනු ලබන ක්‍රමලේඛකයින් විසින් ලියන ලද කේතයක් නොවේ.
නිකොල්

6
En පුනරුදය: මම ඇසූ විට මුලින්ම සිතන්නේ, "සමහර අයට අවුරුදු දහයක පළපුරුද්දක් ඇති අතර සමහර අයට වසරක අත්දැකීම් දස වතාවක් පුනරාවර්තනය වේ."
මේසන් වීලර්

8
පළමුවෙන්ම "ලබා ගැනීම" ඕඕ පසු මම තරමක් විශාල ව්‍යාපෘතියක් සැලසුම් කරමින් සිටියෙමි. එය හොඳින් ක්‍රියාත්මක වුවද, නිරන්තරයෙන් මෝස්තරය අස්ථාවර බව මට පෙනී ගියේය - මෙහි සහ එහි සුළු කෝපයක් ඇති කරන අතර සමහර විට ඇතැම් ප්‍රතික්‍රියාකාරක සම්පූර්ණ බැල්ලියක් බවට පත් කරයි. සමස්ත අත්දැකීම පැහැදිලි කිරීම තරමක් අපහසු ය, නමුත් "උරුමය පිළිබඳ අනුග්‍රහය" යන වාක්‍ය ඛණ්ඩය එය හරියටම විස්තර කරයි. එය "උරුමයෙන් වළකින්න" යනුවෙන් නොකියන බවක් හෝ ඇඟවීමක් නොකරන බව සලකන්න, තේරීම පැහැදිලිව පෙනෙන විට එය ඔබට සුළු විකාරයක් ලබා දෙයි.
බිල් කේ

44

එය අළුත් අදහසක් නොවේ, එය ඇත්ත වශයෙන්ම 1994 දී ප්‍රකාශයට පත් කරන ලද GoF සැලසුම් රටා පොතේ හඳුන්වා දුන් බව මම විශ්වාස කරමි.

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

GoF පොතෙන්:

උරුමය විසින් තම දෙමව්පියන්ගේ ක්‍රියාවට නැංවීම පිළිබඳ විස්තර සඳහා උප පංතියක් නිරාවරණය කරයි, බොහෝ විට කියනුයේ 'උරුමය බිඳවැටීම් සංවර්‍ධනය කිරීම'

ගොෆ් පොත පිළිබඳ විකිපීඩියා ලිපියේ හොඳ හැඳින්වීමක් ඇත.


14
මම ඒකට එකඟ නැහැ. ඔබ උරුම කර ගත් පන්තියේ ක්‍රියාත්මක කිරීමේ තොරතුරු දැන ගැනීමට ඔබට අවශ්‍ය නැත; පංතියෙන් නිරාවරණය වන මහජන සහ ආරක්ෂිත සාමාජිකයින් පමණි . ක්‍රියාත්මක කිරීමේ තොරතුරු ඔබ දැන සිටිය යුතු නම්, ඔබ හෝ මූලික පංතිය ලියා ඇති අය යම්කිසි වැරැද්දක් කරමින් සිටින අතර, අඩුපාඩුව මූලික පන්තියේ තිබේ නම්, සංයුතිය ඔබට එය නිවැරදි කිරීමට / වැඩ කිරීමට උපකාරී නොවේ.
මේසන් වීලර්

20
ඔබ කියවා නැති දෙයක් සමඟ එකඟ නොවන්නේ කෙසේද? GoF වෙතින් page න පිටුවක් හා සාකච්ඡාවකින් අඩක් ඔබට ලැබෙන්නේ ඉතා සුළු දර්ශනයක් පමණි.
philosodad

7
olpholosodad: මම කියවා නැති දෙයක් සමඟ මම එකඟ නොවෙමි. මම කියවා ඇති "නිර්වචනය අනුව, ඔබ උරුම කර ගත් පන්තියේ ක්‍රියාත්මක කිරීමේ තොරතුරු ඔබ දැනගත යුතුය" යනුවෙන් ඩීන් ලියා ඇති දේ සමඟ මම එකඟ නොවෙමි.
මේසන් වීලර්

11
මා ලියා ඇත්තේ ගොෆ් පොතේ විස්තර කර ඇති දේවල සාරාංශයක් පමණි. මම එය තරමක් තදින් පැවසුවා විය හැකිය (ඔබ සියලු ක්‍රියාත්මක කිරීමේ තොරතුරු දැන ගැනීමට අවශ්‍ය නැත ) නමුත් උරුමය පිළිබඳ සංයුතියට අනුග්‍රහය දැක්වීමට GoF පවසන පොදු හේතුව එයයි.
ඩීන් හාඩිං

2
මා වැරදියි නම් මාව නිවැරදි කරන්න, නමුත් මම එය දකින්නේ, “ව්‍යංගයෙන් (එනම් උරුමය) වඩා පැහැදිලි පන්ති සම්බන්ධතාවලට (එනම් අතුරු මුහුණත්) අනුග්‍රහය දක්වන්න.” හිටපු තැනැත්තා ඔබට එය කරන්නේ කෙසේදැයි නොකියමින් ඔබට අවශ්‍ය දේ කියයි. දෙවැන්න එය කරන්නේ කෙසේදැයි ඔබට පවසනවා පමණක් නොව, පාරේ බැස යාම ගැන පසුතැවෙනු ඇත.
ඉවාන් ප්ලේස්

28

ඔබගේ ප්‍රශ්නයේ කොටසකට පිළිතුරු සැපයීම සඳහා, මෙම සංකල්පය ප්‍රථම වරට 1994 දී ප්‍රකාශයට පත් කරන ලද GOF සැලසුම් රටා: නැවත භාවිතා කළ හැකි වස්තු-නැඹුරු මෘදුකාංග පොතේ පළ වූ බව මම විශ්වාස කරමි . මෙම වාක්‍ය ඛණ්ඩය 20 වන පිටුවේ ඉහළින්ම හැඳින්වේ:

උරුමයට වඩා වස්තු සංයුතියට කැමති වන්න

ඔවුන් මෙම ප්‍රකාශයට පෙරවදනක් වන්නේ උරුමය සංයුතිය සමඟ සංසන්දනය කිරීමෙනි. ඔවුන් "කිසි විටෙකත් උරුමය භාවිතා නොකරන්න" යැයි නොකියයි.


25

"උරුමය මත සංයුතිය" යනු කෙටි (හා පෙනෙන පරිදි නොමඟ යවන) ක්‍රමයක් වන අතර, "පන්තියක දත්ත (හෝ හැසිරීම) වෙනත් පන්තියකට ඇතුළත් කළ යුතු යැයි හැඟෙන විට, උරුමය අන්ධ ලෙස යෙදීමට පෙර සංයුතිය භාවිතා කිරීම ගැන සලකා බලන්න".

මෙය සත්‍ය වන්නේ ඇයි? උරුමය නිසා පන්ති දෙක අතර තද, සංයුක්ත කාල සම්බන්ධතාවයක් ඇති කරයි. ඊට හාත්පසින්ම වෙනස්ව සංයුතිය ලිහිල් සම්බන්ධ කිරීමකි, අනෙක් ඒවා අතර පැහැදිලි ගැටළු වෙන් කිරීම, ධාවන වේලාවේ පරායත්තතාවයන් මාරු කිරීමේ හැකියාව සහ පහසු, වඩා හුදකලා පරායත්තතා පරීක්ෂණ හැකියාව.

එයින් අදහස් කරන්නේ උරුමය පරිස්සමින් හැසිරවිය යුත්තේ එය පිරිවැයකින් මිස එය ප්‍රයෝජනවත් නොවන නිසා බවයි. ඇත්ත වශයෙන්ම, "උරුමයට වඩා සංයුතිය" බොහෝ විට අවසන් වන්නේ "උරුමය මත සංයුතිය + උරුමය" ලෙසට ය. මන්දයත් ඔබ බොහෝ විට අවශ්‍ය වන්නේ ඔබේ රචනා පරායත්තතාවය කොන්ක්‍රීට් උප පංතියට වඩා වියුක්ත සුපිරි පන්තියක් වීමට ය. ධාවන වේලාවේදී ඔබේ යැපීමේ විවිධ කොන්ක්‍රීට් ක්‍රියාත්මක කිරීම් අතර මාරු වීමට එය ඔබට ඉඩ සලසයි.

එම හේතුව නිසා (වෙනත් අය අතර), වැනිලා උරුමයට වඩා අතුරු මුහුණත ක්‍රියාත්මක කිරීමේ හෝ වියුක්ත පංතිවල උරුමය බොහෝ විට භාවිතා කරනු ඔබ දකිනු ඇත.

(රූපක) උදාහරණයක් විය හැකිය:

"මට සර්ප පංතියක් ඇති අතර සර්පයා දෂ්ට කළ විට කුමක් සිදුවේද යන්න එම පන්තියේ කොටසක් ලෙස ඇතුළත් කිරීමට මට අවශ්‍යය. සර්පයාට බයිට් () ක්‍රමයක් ඇති බිටර් ඇනිමල් පංතියක් උරුම කර ගැනීමට මම පෙළඹෙනු ඇත. නමුත් සංයුතිය උඩින් උරුමය මට අනතුරු අඟවන්නේ මම ඒ වෙනුවට සංයුතිය භාවිතා කිරීමට උත්සාහ කළ යුතු බවයි ... මගේ නඩුවේදී, මෙය දෂ්ට සාමාජිකයෙකු සිටින සර්පයා බවට පරිවර්තනය කළ හැකිය.බයිට් පංතිය උප පංති කිහිපයක් සහිත වියුක්ත (හෝ අතුරු මුහුණතක්) විය හැකිය. මට VenomousBite සහ DryBite උප පංති තිබීම හා සර්පයාගේ වයස වැඩිවන විට එකම සර්ප උදාහරණයකින් දෂ්ට කිරීම වෙනස් කිරීම වැනි හොඳ දේවල් මට ලැබෙනවා. තවද, බයිට් එකක ඇති සියලුම බලපෑම් තමන්ගේම පන්තියේදී හැසිරවීම මට එම ෆ්‍රොස්ට් පන්තියේ නැවත භාවිතා කිරීමට ඉඩ සලසයි. , හිම සපා කෑ නමුත් බිටර් ඇනිමල් නොවන නිසා සහ එසේ ය ... "


4
සර්පයා සමඟ ඉතා හොඳ උදාහරණයක්. මට මෑතකදී මගේම පන්ති සමඟ සමාන නඩුවක් හමු විය
මැක්සි

22

සංයුතිය සඳහා විය හැකි තර්ක කිහිපයක්:

සංයුතිය තරමක් වැඩි භාෂාවක් / රාමු අ nost
ෙයවාදී උරුමයක් වන අතර එය ක්‍රියාත්මක කරන / අවශ්‍ය කරන / සක්‍රීය කරන දේ උප / සුපිරි පන්තියට ප්‍රවේශ විය හැකි දේ සහ එහි ක්‍රියාකාරීත්වයේ ඇඟවුම් මොනවාද යන්න අනුව භාෂාවන් අතර වෙනස් වේ. සංයුතිය තරමක් මූලික වන අතර අවශ්‍ය වේ භාෂා සහය ඉතා අල්ප වන අතර එමඟින් විවිධ වේදිකා / රාමු හරහා ක්‍රියාත්මක කිරීමෙන් සංයුතියේ රටා වඩාත් පහසුවෙන් බෙදා ගත හැකිය.

සංයුතිය යනු වස්තූන් තැනීමේ ඉතා සරල හා උපායශීලී ක්‍රමයකි
උරුමය තේරුම් ගැනීමට සාපේක්ෂව පහසුය, නමුත් සැබෑ ජීවිතයේ එතරම් පහසුවෙන් නිරූපණය නොවේ. සැබෑ ජීවිතයේ බොහෝ වස්තූන් කොටස් වලට වෙන් කොට රචනා කළ හැකිය. රෝද දෙකක්, රාමුවක්, ආසනයක්, දම්වැලක් ආදිය භාවිතයෙන් බයිසිකලයක් සාදා ගත හැකි යැයි පවසන්න. උරුමය රූපකයක ඔබට බයිසිකලයක් යුනිසයිසිකලයක් විහිදුවන බව පැවසිය හැකි අතර එය තරමක් ශක්‍ය නමුත් සංයුතියට වඩා සැබෑ පින්තූරයට වඩා බොහෝ සෙයින් වැඩි ය (පැහැදිලිවම මෙය ඉතා හොඳ උරුමයක් නොවේ, නමුත් කාරණය එලෙසම පවතී). උරුමය යන වචනය පවා (අවම වශයෙන් බොහෝ එක්සත් ජනපද ඉංග්‍රීසි කථා කරන්නන්ගෙන් මම බලාපොරොත්තු වන පරිදි) ස්වයංක්‍රීයව "මියගිය relative ාතියෙකුගෙන් යමක් සම්මත වී ඇත" යන රේඛාව ඔස්සේ ස්වයංක්‍රීයව අර්ථයක් ඉල්ලා සිටින අතර එය මෘදුකාංගයේ අර්ථය සමඟ යම් සහසම්බන්ධයක් ඇති නමුත් එය තවමත් ලිහිල්ව ගැලපේ.

සංයුතිය සෑම විටම පාහේ නම්‍යශීලී වේ
සංයුතිය භාවිතා කිරීමෙන් ඔබට සැමවිටම ඔබේ හැසිරීම නිර්වචනය කිරීමට හෝ ඔබේ රචනා කරන ලද කොටස්වල කොටස නිරාවරණය කිරීමට තෝරා ගත හැකිය. මේ ආකාරයෙන් ඔබ උරුම ධූරාවලියක් (අථත්‍ය එදිරිව එදිරිව අථත්‍ය නොවන ආදිය) විසින් පනවනු ලබන සීමාවන්ට මුහුණ නොදේ.

එබැවින්, සංයුතිය ස්වභාවයෙන්ම උරුමයට වඩා අඩු න්‍යායාත්මක සීමාවන් ඇති සරල රූපකයක් වන නිසා විය හැකිය. තවද, මෙම විශේෂිත හේතු සැලසුම් කාලය තුළ වඩාත් පැහැදිලිව පෙනෙන්නට පුළුවන, නැතහොත් උරුමයේ සමහර වේදනාකාරී කරුණු සමඟ කටයුතු කිරීමේදී කැපී පෙනේ.

වියාචනය:
නිසැකවම එය මෙම පැහැදිලි කප්පාදුව / එක් මාර්ගයක් නොවේ. සෑම සැලසුමක්ම රටා / මෙවලම් කිහිපයක් ඇගයීමට ලක් කරයි. උරුමය බහුලව භාවිතා වන අතර, ප්‍රතිලාභ රාශියක් ඇති අතර සංයුතියට වඩා බොහෝ වාරයක් අලංකාර වේ. මේවා සංයුතියට අනුග්‍රහය දැක්වීමේදී භාවිතා කළ හැකි හේතු කිහිපයක් පමණි.


1
"නිසැකවම එය මෙම පැහැදිලි කප්පාදුව / එක් මාර්ගයක් නොවේ." සංයුතිය උරුමයට වඩා නම්‍යශීලී නොවන්නේ කවදාද? මම එය ඉතා තර්ක කරන්නට ඇත එක් මාර්ගයක් වේ. උරුමය යනු සංයුතියේ විශේෂ අවස්ථාවක් සඳහා සින්ටැක්ටික් සීනි පමණි.
weberc2

පැහැදිලිවම ක්‍රියාත්මක කරන ලද අතුරුමුහුණත් භාවිතා කරමින් සංයුතිය ක්‍රියාත්මක කරන භාෂාවක් භාවිතා කිරීමේදී සංයුතිය බොහෝ විට නම්‍යශීලී නොවේ , මන්ද එම අතුරුමුහුණත් කාලයත් සමඟ පසුගාමී-අනුකූල ආකාරයකින් පරිණාමය වීමට ඉඩ නොදේ. #jmtcw
මයික්ස්චින්කල්

11

පසුගිය මාස කිහිපය තුළ මිනිසුන් මෙය පවසන බව ඔබ දැක ඇති නමුත් එය හොඳ ක්‍රමලේඛකයන්ට වඩා වැඩි කාලයක් තිස්සේ දැනගෙන තිබේ. මම නිසැකවම එය දශකයක් පමණ සුදුසු තැනක පැවසුවෙමි.

සංකල්පයේ කාරණය වන්නේ උරුමයට විශාල සංකල්පීය පොදු කාර්යයක් තිබීමයි. ඔබ උරුමය භාවිතා කරන විට, සෑම ක්‍රම ඇමතුමකටම එහි ව්‍යාජ පිටත් කිරීමක් ඇත. ඔබට ගැඹුරු උරුම ගස් තිබේ නම්, හෝ බහු යැවීමක් හෝ (ඊටත් වඩා නරක) දෙකම තිබේ නම්, එම විශේෂිත ක්‍රමය ඕනෑම විශේෂිත ඇමතුමකට යවනු ලබන්නේ කොතැනදැයි සොයා බැලීම රාජකීය පිටා බවට පත්විය හැකිය. එමඟින් කේතය පිළිබඳ නිවැරදි තර්කණය වඩාත් සංකීර්ණ වන අතර, එය නිදොස් කිරීම දුෂ්කර කරයි.

නිදර්ශනය කිරීමට සරල උදාහරණයක් දෙන්නම්. උරුමය ගසක ගැඹුරට යමෙකු ක්‍රමවේදයක් නම් කළා යැයි සිතමු foo. එවිට තවත් අයෙකු පැමිණ fooගස මුදුනට එකතු කරයි , නමුත් වෙනස් දෙයක් කරයි. (මෙම නඩුව බහු උරුමයන් සමඟ වඩාත් සුලභ වේ.) දැන් මූල පන්තියේ සේවය කරන පුද්ගලයා අපැහැදිලි ළමා පන්තිය බිඳ දමා ඇති අතර බොහෝ විට එය නොදැනේ. ඔබට ඒකක පරීක්ෂණ සමඟ 100% ක ආවරණයක් තිබිය හැකි අතර මෙම බිඳවැටීම නොදකින බැවින් ඉහළින් සිටින පුද්ගලයා ළමා පන්තිය පරීක්ෂා කිරීම ගැන නොසිතන අතර ළමා පන්තිය සඳහා වන පරීක්ෂණ ඉහළින් නිර්මාණය කළ නව ක්‍රම අත්හදා බැලීමට නොසිතයි . (පිළිගත හැකි පරිදි මෙය හසු කර ගත හැකි ඒකක පරීක්ෂණ ලිවීමට ක්‍රම තිබේ, නමුත් ඔබට පහසුවෙන් පරීක්ෂණ ලිවිය නොහැකි අවස්ථා ද ඇත.)

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

උරුමය සහ සංයුතිය එකිනෙකට වෙනස් ආකාර දෙකකට සේවය කරන මෙවලම් දෙකක් බව දැන් ඔබ නිවැරදිය. නිසැකවම උරුමය සංකල්පීය පොදු කාර්යයක් දරයි, නමුත් එය කාර්යය සඳහා නිවැරදි මෙවලම වන විට, එය භාවිතා නොකිරීමට උත්සාහ කිරීම හා එය ඔබ වෙනුවෙන් කරන දේ අතින් කිරීම වැනි දේට වඩා අඩු සංකල්පීය පොදු කාර්යයක් දරයි. ඔවුන් කරන්නේ කුමක්දැයි නොදන්නා කිසිවෙකු ඔබ කිසි විටෙකත් උරුමය භාවිතා නොකළ යුතු යැයි නොකියනු ඇත. නමුත් එය නිවැරදි දෙය බව සහතික කරගන්න.

අවාසනාවකට බොහෝ සංවර්ධකයින් වස්තු නැඹුරු මෘදුකාංග ගැන ඉගෙන ගනී, උරුමය ගැන ඉගෙන ගනී, පසුව හැකි සෑම විටම ඔවුන්ගේ නව පොරව භාවිතා කිරීමට පිටත් වේ. එයින් අදහස් කරන්නේ සංයුතිය නිවැරදි මෙවලම වූ තැන ඔවුන් උරුමය භාවිතා කිරීමට උත්සාහ කරන බවයි. කාලයාගේ ඇවෑමෙන් ඔවුන් වඩා හොඳින් ඉගෙන ගනු ඇතැයි අපේක්‍ෂා කරන නමුත්, අත් පා ඉවත් කළ පසු බොහෝ විට මෙය සිදු නොවේ. යනාදිය නරක අදහසක් යැයි ඉදිරියෙන් පැවසීම ඉගෙනීමේ ක්‍රියාවලිය වේගවත් කිරීමට හා තුවාල අඩු කිරීමට නැඹුරු වේ.


3
හරි, මම හිතන්නේ එය C ++ දෘෂ්ටිකෝණයකින් අර්ථවත් කරයි. එය මම කවදාවත් නොසිතූ දෙයක්, එය ඩෙල්ෆි හි ගැටලුවක් නොවන නිසා, මම බොහෝ විට භාවිතා කරන්නේ එයයි. (බහුවිධ උරුමයක් නොමැත, මූලික ක්‍රමය ඉක්මවා නොයන ව්‍යුත්පන්න පන්තියක ඔබට මූලික පන්තියක ක්‍රමයක් සහ එකම නමින් වෙනත් ක්‍රමයක් තිබේ නම්, සම්පාදකයා අනතුරු ඇඟවීමක් නිකුත් කරයි, එබැවින් ඔබ අහම්බෙන් අවසන් නොවේ මේ ආකාරයේ ගැටලුවක් සමඟ.)
මේසන් වීලර්

1
Ason මේසන්: බිඳෙනසුලු පාදක පන්තියේ උරුමය පිළිබඳ ගැටලුව සම්බන්ධයෙන් ඇන්ඩර්ගේ වස්තුව පැස්කල් (ඩෙල්ෆි) සී ++ සහ ජාවා වලට වඩා උසස් ය. සී ++ සහ ජාවා මෙන් නොව, උරුම වූ අථත්‍ය ක්‍රමයක් අධික ලෙස පැටවීම ඇඟවුම් නොකරයි.
bit-twiddler

2
@ bit-twiddler, ඔබ C ++ සහ Java ගැන කියන දේ ස්මාල්ටෝක්, පර්ල්, පයිතන්, රූබි, ජාවාස්ක්‍රිප්ට්, පොදු ලිප්ස්, පරමාර්ථ-සී සහ ඕනෑම ආකාරයක OO සහය ලබා දෙන මා ඉගෙන ගත් සෑම භාෂාවක් ගැනම පැවසිය හැකිය. ගූග්ලිං යෝජනා කරන්නේ සී # වස්තුව පැස්කල්ගේ නායකත්වය අනුගමනය කරන බවයි.
btilly

3
එයට හේතුව ඇන්ඩර්ස් හෙජල්ස්බර්ග් විසින් බෝර්ලන්ඩ්ගේ වස්තු පැස්කල් (ඩෙල්ෆි) සහ සී # රසය නිර්මාණය කිරීමයි.
bit-twiddler

8

OO ආරම්භකයින් අවශ්‍ය නොවන විට උරුමය භාවිතා කිරීමට පෙළඹෙන බව නිරීක්ෂණයට ප්‍රතිචාරයකි. උරුමය නිසැකවම නරක දෙයක් නොවේ, නමුත් එය ඕනෑවට වඩා භාවිතා කළ හැකිය. එක් පන්තියකට තවත් පන්තියක ක්‍රියාකාරිත්වය අවශ්‍ය නම්, සංයුතිය බොහෝ විට ක්‍රියාත්මක වනු ඇත. වෙනත් තත්වයන් තුළ, උරුමය ක්‍රියාත්මක වන අතර සංයුතිය සිදු නොවේ.

පංතියකින් උරුම වීම බොහෝ දේ අදහස් කරයි. එයින් ගම්‍ය වන්නේ ව්‍යුත්පන්නය යනු එක්තරා ආකාරයක පදනමක් බවයි ( ගෝරි විස්තර සඳහා ලිස්කොව් ආදේශන මූලධර්මය බලන්න), ඔබ පදනමක් භාවිතා කරන සෑම විටම ව්‍යුත්පන්නයක් භාවිතා කිරීම අර්ථවත් වනු ඇත. එය ආරක්ෂිත සාමාජිකයින්ට සහ පදනමේ සාමාජික ක්‍රියාකාරකම් වලට ව්‍යුත්පන්න ප්‍රවේශය ලබා දෙයි. එය සමීප සම්බන්ධතාවයක් වන අතර එයින් අදහස් කරන්නේ එය ඉහළ සම්බන්ධතාවයක් ඇති අතර එකක් වෙනස් කිරීම අනෙකට වෙනස්කම් අවශ්‍ය වේ.

සම්බන්ධ වීම නරක දෙයක්. එය වැඩසටහන් තේරුම් ගැනීමට සහ වෙනස් කිරීමට අපහසු කරයි. අනෙක් දේවල් සමාන වීම, ඔබ සැමවිටම අඩු සම්බන්ධතාවයක් සහිත විකල්පය තෝරා ගත යුතුය.

එමනිසා, සංයුතිය හෝ උරුමය මඟින් කාර්යය effectively ලදායී ලෙස සිදු කරන්නේ නම්, සංයුතිය තෝරන්න, මන්ද එය අඩු සම්බන්ධතාවයයි. සංයුතිය මඟින් කාර්යය effectively ලදායී ලෙස සිදු නොකරන්නේ නම් සහ උරුමය ලබා දෙන්නේ නම්, උරුමය තෝරා ගන්න.


"වෙනත් තත්වයන් තුළ, උරුමය ක්‍රියාත්මක වන අතර සංයුතිය සිදු නොවේ." කවදා ද? සංයුතිය සහ අතුරුමුහුණත් බහුමාපකය භාවිතයෙන් උරුමය ආදර්ශනය කළ හැකිය, එබැවින් සංයුතිය ක්‍රියාත්මක නොවන තත්වයන් තිබේ නම් මම පුදුම වෙමි.
weberc2

8

මෙන්න මගේ ශත දෙක (දැනටමත් මතු කර ඇති සියලුම විශිෂ්ට ලකුණු වලින් ඔබ්බට):

IMHO, මෙම සංකල්පය උගන්වන ආකාරයෙහි ප්‍රති part ලයක් ලෙස බොහෝ ක්‍රමලේඛකයින්ට සැබවින්ම උරුමය නොලැබෙන අතර එය ඉක්මවා යාම අවසන් වේ. මෙම සංකල්පය පවතින්නේ එය නිවැරදිව කරන්නේ කෙසේද යන්න ඔවුන්ට ඉගැන්වීම කෙරෙහි අවධානය යොමු කරනවා වෙනුවට එය ඉක්මවා යාමෙන් වලක්වා ගැනීමට උත්සාහ කිරීමේ ක්‍රමයක් ලෙස ය.

ඉගැන්වීම හෝ උපදේශනය කිරීම සඳහා කාලය ගත කළ ඕනෑම අයෙක් දන්නවා මෙය බොහෝ විට සිදුවන්නේ, විශේෂයෙන් වෙනත් පරාමිතීන් පිළිබඳ අත්දැකීම් ඇති නව සංවර්ධකයින් සමඟ:

මෙම සංවර්ධකයින්ට මුලින් හැඟෙන්නේ උරුමය යනු මෙම බියජනක සංකල්පය බවයි. එබැවින් ඒවා අතුරු මුහුණත් අතිච්ඡාදනයන් (උදා: පොදු උප වර්ගීකරණයකින් තොරව එකම නිශ්චිත හැසිරීම) සහ පොදු ක්‍රියාකාරීත්ව කොටස් ක්‍රියාත්මක කිරීම සඳහා ගෝලීයයන් සමඟ වර්ග නිර්මාණය කිරීම අවසන් කරයි.

එවිට (බොහෝ විට අධික ලෙස ඉගැන්වීමේ ප්‍රති result ලයක් ලෙස), ඔවුන් උරුමයේ ප්‍රතිලාභ ගැන ඉගෙන ගනී, නමුත් එය බොහෝ විට උගන්වනු ලබන්නේ නැවත භාවිතා කිරීම සඳහා වන සියලු විසඳුම ලෙස ය. ඔවුන් අවසන් වන්නේ ඕනෑම හවුල් හැසිරීමක් උරුමය හරහා බෙදා ගත යුතුය යන මතයෙනි. මෙයට හේතුව බොහෝ විට අවධානය යොමු කරනුයේ උප වර්ගීකරණයට වඩා ක්‍රියාත්මක කිරීමේ උරුමය මත ය.

80% ක්ම ප්‍රමාණවත්. නමුත් අනෙක් 20% ගැටලුව ආරම්භ වන ස්ථානයයි. නැවත ලිවීම වළක්වා ගැනීම සඳහා සහ ක්‍රියාත්මක කිරීම බෙදාගැනීමෙන් ඔවුන් ප්‍රයෝජන ලබා ගෙන ඇති බවට සහතික කර ගැනීම සඳහා, ඔවුන් යටින් පවතින වියුක්ත කිරීම්වලට වඩා අපේක්ෂිත ක්‍රියාත්මක කිරීම වටා ඔවුන්ගේ ධූරාවලිය සැලසුම් කිරීමට පටන් ගනී. "දෙබිඩි සම්බන්ධිත ලැයිස්තුවෙන් තොගය උරුම වේ" මේ සඳහා හොඳ උදාහරණයකි.

බොහෝ ගුරුවරුන් මෙම අවස්ථාවේදී අතුරුමුහුණත් පිළිබඳ සංකල්පය හඳුන්වා දීමට බල කරන්නේ නැත, මන්ද එය වෙනත් සංකල්පයක් නිසා හෝ (C ++ හි) මෙම අදියරේදී උගන්වනු නොලබන වියුක්ත පංති සහ බහු උරුමයන් භාවිතා කර ඒවා ව්‍යාජ ලෙස සකස් කළ යුතු බැවිනි. ජාවා හි බොහෝ ගුරුවරු "බහු උරුමයක් නැත" හෝ "බහු උරුමය නපුර" යන්න අතුරු මුහුණත් වල වැදගත්කමෙන් වෙන්කර හඳුනා නොගනිති.

මේ සියල්ල උග්‍ර වන්නේ ක්‍රියාවට නැංවීමේ උරුමය සමඟ අනවශ්‍ය කේත ලිවීමට අපොහොසත් වීමේ සුන්දරත්වය අප ඉගෙන ගෙන ඇති හෙයිනි, සෘජු නියෝජිත කේත ටොන් ගණනක් අස්වාභාවික යැයි පෙනේ. එබැවින් සංයුතිය අවුල් සහගත බව පෙනේ, එබැවින් නව ක්‍රමලේඛකයන්ට ඒවා කෙසේ හෝ භාවිතා කිරීමට තල්ලු කිරීම සඳහා අපට මෙම මාපට ඇඟිලි රීති අවශ්‍ය වේ (ඒවා ද ඉක්මවා යයි).


එය අධ්‍යාපනයේ සැබෑ කොටසකි. ඔබ උසස් පා courses මාලා ලබා ගත යුතුය, එනම් ඉතිරි 20% නමුත් ඔබ ශිෂ්‍යයා වශයෙන් මූලික හා සමහර විට අතරමැදි පා .මාලා ඉගැන්වීය. අවසානයේදී, ඔබ ඔබේ පා courses මාලා හොඳින් කළ නිසා ඔබට හොඳින් ඉගැන්වූ බවක් දැනේ (එය ඉණිමඟේ පින් එකක් පමණක් නොපෙනේ). එය යථාර්ථයේ කොටසක් පමණක් වන අතර අපගේ හොඳම ඔට්ටුව වන්නේ එහි අතුරු ආබාධ තේරුම් ගැනීම මිස කෝඩරයන්ට පහර දීම නොවේ.
ස්වාධීන

8

එක් විවරණයක දී, මේසන් සඳහන් කළේ යම් දවසක අප කතා කරන්නේ හානිකර යැයි සැලකෙන උරුමය ගැන ය .

මම එසේ බලාපොරොත්තු වෙනවා.

උරුමය පිළිබඳ ගැටළුව එකවරම සරල හා මාරාන්තික ය, එක් සංකල්පයකට එක් ක්‍රියාකාරීත්වයක් තිබිය යුතුය යන අදහසට එය ගරු නොකරයි.

බොහෝ OO- භාෂාවලින්, ඔබ මූලික පන්තියකින් උරුම වන විට:

  • එහි අතුරුමුහුණතෙන් උරුම වන්න
  • එය ක්‍රියාත්මක කිරීමෙන් උරුම වේ (දත්ත සහ ක්‍රම දෙකම)

මෙන්න කරදරය බවට පත්වේ.

මේ නො -භාෂා 00 වැඩි වශයෙන් එය සමඟ දිගටම කරන නමුත්, එකම ප්රවේශය. වාසනාවකට අතුරු මුහුණත් / වියුක්ත පන්ති ඒවා තුළ පවතී.

එසේම, වෙනත් ආකාරයකින් කිරීමට පහසු නොවීම එය බොහෝ දුරට භාවිතා කිරීමට දායක වේ: අවංකවම, මෙය දැන සිටියද, ඔබ අතුරු මුහුණතකින් උරුම වී සංයුතිය අනුව මූලික පන්තිය කාවැද්දීම, බොහෝ ක්‍රම ඇමතුම් පැවරීම? එය සැලකිය යුතු ලෙස වඩා හොඳ වනු ඇත, හදිසියේම නව ක්‍රමයක් අතුරු මුහුණත තුළට පැමිණියහොත් ඔබට එය අනතුරු අඟවනු ඇත, එය ක්‍රියාත්මක කරන්නේ කෙසේද යන්න දැනුවත්ව තෝරා ගත යුතුය.

ප්‍රති-ලක්ෂ්‍යයක් ලෙස, Haskellපිරිසිදු අතුරුමුහුණත් (සංකල්ප ලෙස හැඳින්වෙන) (1) වලින් “ව්‍යුත්පන්න” වන විට පමණක් ලිස්කොව් මූලධර්මය භාවිතා කිරීමට ඉඩ දෙන්න. ඔබට දැනට පවතින පන්තියකින් ව්‍යුත්පන්න කළ නොහැක, සංයුතිය පමණක් එහි දත්ත කාවැද්දීමට ඉඩ දෙයි.

(1) සංකල්ප මඟින් ක්‍රියාවට නැංවීම සඳහා සංවේදී පෙරනිමියක් ලබා දිය හැකි නමුත් ඒවාට දත්ත නොමැති බැවින් මෙම පෙරනිමිය අර්ථ දැක්විය හැක්කේ සංකල්පය විසින් යෝජනා කරන ලද වෙනත් ක්‍රම අනුව හෝ නියතයන් අනුව ය.


7

සරල පිළිතුර නම්: උරුමය සංයුතියට වඩා විශාල සම්බන්ධතාවයක් ඇත. වෙනත් ආකාරයකින් සමාන ගුණාංග සහිත විකල්ප දෙකක් ලබා දී, අඩු සම්බන්ධයක් ඇති එකක් තෝරන්න.


2
නමුත් සමස්ත කාරණය එයයි. ඔවුන් ඉන්නේ නැහැ "එසේ සමාන." OOP භාවිතා කිරීමේ සමස්ත ලක්ෂ්‍යය වන ලිස්කොව් ආදේශනය සහ බහුමාපකය උරුමය සක්‍රීය කරයි. සංයුතිය නැත.
මේසන් වීලර්

4
බහුමාපකය / එල්එස්පී ඕඕපී හි “සමස්ත ලක්ෂ්‍යය” නොවේ, ඒවා එක් ලක්ෂණයකි. සංක්ෂිප්තකරණය, වියුක්ත කිරීම් යනාදිය ද ඇත. උරුමය යන්නෙන් අදහස් කරන්නේ “සම්බන්ධතාවයක්” වන අතර, සමුච්චිත ආකෘති “සම්බන්ධතාවයක්” ඇත.
ස්ටීව්

Te ස්ටීව්: දත්ත ව්‍යුහයන් සහ ක්‍රියා පටිපාටි / කාර්යයන් නිර්මාණය කිරීමට සහාය වන ඕනෑම ආදර්ශයක් තුළ ඔබට සාරාංශ හා සංක්ෂිප්තකරණය කළ හැකිය. නමුත් බහුමාපකය (මෙම සන්දර්භය තුළ අථත්ය ක්රම යැවීම ගැන විශේෂයෙන් සඳහන් කරයි) සහ ලිස්කොව් ආදේශනය වස්තු-නැඹුරු වැඩසටහන්කරණයට අද්විතීය වේ. ඒකෙන් මම අදහස් කළේ එයයි.
මේසන් වීලර්

3
Ason මේසන්: මාර්ගෝපදේශය වන්නේ “උරුමයට වඩා සංයුතියට අනුග්‍රහය දැක්වීම” යන්නයි. කිසිම ආකාරයකින් මෙයින් අදහස් කරන්නේ උරුමය භාවිතා කිරීම හෝ වළක්වා නොගැනීමයි. අනෙක් සියල්ලම සමාන වූ විට සංයුතිය තෝරන්න. නමුත් ඔබට උරුමය අවශ්‍ය නම් එය භාවිතා කරන්න!
ජෙෆ්රි ෆවුස්ට්

7

මම හිතන්නේ මේ වගේ උපදෙස් හරියට "පියාසර කිරීමට රිය පැදවීමට කැමති" එනම්, ගුවන් යානා මෝටර් රථවලට වඩා සියලු ආකාරයේ වාසි ඇත, නමුත් එය එක්තරා සංකීර්ණතාවයකින් යුක්ත වේ. එබැවින් බොහෝ අය නගර මධ්‍යයේ සිට තදාසන්න ප්‍රදේශවලට පියාසර කිරීමට උත්සාහ කරන්නේ නම්, ඔවුන් සැබවින්ම ඇසිය යුතු අවවාදය නම් ඔවුන්ට පියාසර කිරීමට අවශ්‍ය නොවන අතර ඇත්ත වශයෙන්ම පියාසර කිරීම දිගු කාලීනව වඩාත් සංකීර්ණ වනු ඇත, එය කෙටිකාලීනව සිසිල් / කාර්යක්ෂම / පහසු යැයි පෙනුනත්. ඔබට පියාසර කිරීමට අවශ්‍ය වූ විට එය සාමාන්‍යයෙන් පැහැදිලිව පෙනේ.

ඒ හා සමානව, උරුමයට සංයුතියට කළ නොහැකි දේ කළ හැකිය, නමුත් ඔබ එය භාවිතා කළ යුත්තේ ඔබට එය අවශ්‍ය වූ විට මිස ඔබට අවශ්‍ය නොවන විටය. එබැවින් ඔබට අවශ්‍ය නොවන විට ඔබට උරුමය අවශ්‍ය යැයි උපකල්පනය කිරීමට ඔබ කිසි විටෙකත් පෙළඹෙන්නේ නැත්නම්, “සංයුතියට වැඩි කැමැත්තක් දක්වන්න” යන උපදෙස් ඔබට අවශ්‍ය නොවේ. නමුත් බොහෝ දෙනා කරන්නේ , සහ කළ යුතු බව උපදෙස්.

ඔබට සැබවින්ම උරුමය අවශ්‍ය වූ විට එය පැහැදිලිව පෙනෙන අතර ඔබ එය භාවිතා කළ යුතුය.

එසේම, ස්ටීවන් ලෝව්ගේ පිළිතුර. ඇත්තටම, ඇත්තෙන්ම එය.


1
මම ඔබේ ප්‍රතිසමයට කැමතියි
බැරිලොයිඩ්

2

උරුමය සහජයෙන්ම නරක නැත, සහ සංයුතිය සහජයෙන්ම හොඳ නැත. ඒවා හුදෙක් මෘදුකාංග සැලසුම් කිරීම සඳහා OO ක්‍රමලේඛකයෙකුට භාවිතා කළ හැකි මෙවලම් වේ.

ඔබ පංතියක් දෙස බලන විට, එය අනිවාර්යයෙන්ම කළ යුතු දේට වඩා වැඩි යමක් කරන්නේද ( SRP )? එය අනවශ්‍ය ලෙස අනුපිටපත් කිරීම ( DRY ) ද, නැතහොත් වෙනත් පංතිවල ( විශේෂාංග ඊර්ෂ්‍යාව ) ගුණාංග හෝ ක්‍රම ගැන ඕනෑවට වඩා උනන්දු වන්නේ ද ? පංතිය මෙම සියලු සංකල්ප උල්ලං is නය කරන්නේ නම් (සහ සමහර විට තවත්), එය දෙවියන් පන්තියක් වීමට උත්සාහ කරනවාද ? මේවා මෘදුකාංග සැලසුම් කිරීමේදී ඇතිවිය හැකි ගැටලු ගණනාවක් වන අතර, ඒ කිසිවක් අනිවාර්යයෙන්ම උරුම උරුමයක් නොවන නමුත් බහුමාපකය ද යොදාගෙන ඇති ප්‍රධාන හිසරදය සහ අස්ථාවර පරායත්තතාවයන් ඉක්මනින් ඇති කළ හැකිය.

ගැටලුවේ මුල උරුමය පිළිබඳ අවබෝධයක් නොමැතිකම විය හැකි අතර, සැලසුම අනුව දුර්වල තේරීමක් හෝ තනි වගකීම් මූලධර්මයට අනුකූල නොවන පන්තිවලට අදාළ “කේත සුවඳ” හඳුනා නොගැනීම විය හැකිය . බහුමාපකය සහ ලිස්කොව් ආදේශනය සංයුතියට පක්ෂව ඉවත දැමිය යුතු නැත. උරුමය මත රඳා නොසිට බහුමාපකය යෙදිය හැකිය, මේ සියල්ල බෙහෙවින් අනුපූරක සංකල්ප වේ. කල්පනාකාරීව යෙදුවහොත්. උපක්‍රමය නම් ඔබේ කේතය සරල හා පිරිසිදුව තබා ගැනීම සහ ශක්තිමත් පද්ධති සැලසුමක් නිර්මාණය කිරීම සඳහා ඔබ විසින් නිර්මාණය කළ යුතු පන්ති ගණන ගැන ඕනෑවට වඩා සැලකිලිමත් නොවීමයි.

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


-1

ඇත්ත උපුටා ගැනීම පැමිණෙන්නේ ජොෂුවා බ්ලොච්ගේ “ective ලදායී ජාවා” නම් ස්ථානයෙන් වන අතර එය එක් පරිච්ඡේදයක මාතෘකාව වේ. ඔහු කියා සිටින්නේ පැකේජයක් තුළ උරුමය සුරක්‍ෂිත වන අතර පන්තියක් කොතැනක හෝ විශේෂයෙන් සැලසුම් කර දීර්. කිරීම සඳහා ලේඛනගත කර ඇති බවයි. අනෙක් අය සඳහන් කර ඇති පරිදි, උප පංතියක් එහි සුපිරි පන්තියේ ක්‍රියාත්මක කිරීමේ තොරතුරු මත රඳා පවතින නිසා උරුමය සංසරණය බිඳ දමයි. මෙය අස්ථාවරත්වයට මඟ පාදයි.

ඔහු එය සඳහන් නොකළද, ජාවා හි තනි උරුමයක් යනු සංයුතිය ඔබට උරුමයට වඩා නම්‍යශීලී බවක් ලබා දෙන බව මට පෙනේ.

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.