ආරක්ෂිත විචල්‍යයන් වළක්වා ගැනීමට පිරිසිදු කේතය යෝජනා කරන්නේ ඇයි?


175

"ආකෘතිකරණය" පරිච්ඡේදයේ "සිරස් දුර" කොටසේ ආරක්ෂිත විචල්‍යයන් වළක්වා ගැනීමට පිරිසිදු කේතය යෝජනා කරයි:

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

හේතුව කුමක්ද?


7
ඔබට එය අවශ්‍ය යැයි ඔබ සිතන තැනක් පෙන්වන්න
gnat

63
මම එම පොතේ බොහෝ දේ ශුභාරංචියක් ලෙස නොසලකමි.
රිග්

40
Part රිග් ඔබ මේ කොටස්වල අපහාසයට මායිම් වන්නේ එවැනි අදහස් දැක්වීමෙනි.
රියාතල්

40
මම ඒකට කමක් නැහැ. මම පොත කියවා ඇති අතර ඒ පිළිබඳව මගේම මතයක් තිබිය හැකිය.
රිග්

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

Answers:


284

ආරක්ෂිත විචල්‍යයන් වළක්වා ගත යුත්තේ මන්ද:

  1. ඔවුන් YAGNI ගැටළු වලට තුඩු දෙයි . ආරක්ෂිත සාමාජිකයා සමඟ ඇත්ත වශයෙන්ම දේවල් කරන පැවත එන්නන් ඔබ සතුව නොමැති නම්, එය පුද්ගලික කරන්න.
  2. ඔවුන් එල්එස්පී ගැටළු වලට තුඩු දෙයි . ආරක්ෂිත විචල්‍යයන්ට සාමාන්‍යයෙන් ඒවා හා සම්බන්ධ යම් අභ්‍යන්තර වෙනස්කමක් ඇත (නැතහොත් ඒවා පොදු වනු ඇත). එවිට උරුමකරුවන්ට එම ගුණාංග නඩත්තු කළ යුතු අතර, එමඟින් මිනිසුන්ට ඉස්කුරුප්පු ඇරීමට හෝ හිතාමතාම උල්ලං .නය කළ හැකිය.
  3. ඔවුන් OCP උල්ලං to නය කිරීමට නැඹුරු වේ . මූලික පංතිය ආරක්ෂිත සාමාජිකයා ගැන ඕනෑවට වඩා උපකල්පන කරන්නේ නම්, හෝ උරුමක්කාරයා පන්තියේ හැසිරීම සමඟ නම්‍යශීලී නම්, එම දිගුව මගින් මූලික පන්තියේ හැසිරීම වෙනස් කිරීමට එය හේතු වේ.
  4. ඒවා සංයුතියට වඩා දිගු කිරීම සඳහා උරුමය ලබා දීමට නැඹුරු වේ. මෙය දැඩි ලෙස සම්බන්ධ වීම, එස්ආර්පී උල්ලං lations නය කිරීම් , වඩා දුෂ්කර පරීක්ෂණ සහ 'උරුමයට වඩා වාසිදායක සංයුතිය' සාකච්ඡාවට අයත් වෙනත් දේ රාශියක් කිරීමට හේතු වේ.

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


බොහෝ හොඳ හේතු වලට ස්තූතියි. කෙසේ වෙතත්, පොතේ එය විශේෂයෙන් හැඩතල ගැන්වීමේ හා සිරස් දුරෙහි සන්දර්භය තුළ සඳහන් කරයි, එය මා කල්පනා කරන කොටසයි.
මැට්සෙමන්

2
යමෙක් පංති අතර ආරක්ෂිත සාමාජිකයෙකු ගැන සඳහන් කරන විට බොබ් මාමා සිරස් දුර ගැන සඳහන් කරන බව පෙනේ , එකම පන්තියේ නොවේ.
රොබට් හාවි

5
At මැට්සෙමන් - විශ්වාසයි. මට පොත නිවැරදිව මතක නම්, එම කොටස කේතයේ කියවීමේ හැකියාව සහ සොයා ගැනීමේ හැකියාව කෙරෙහි අවධානය යොමු කරයි. විචල්‍යයන් සහ ශ්‍රිත සංකල්පයක් මත ක්‍රියා කරන්නේ නම් ඒවා කේතයට සමීප විය යුතුය. ආරක්ෂිත සාමාජිකයන් ව්‍යුත්පන්න වර්ග භාවිතා කරනු ඇත, ඒවා සම්පූර්ණයෙන්ම වෙනස් ගොනුවක ඇති බැවින් ආරක්ෂිත සාමාජිකයාට සමීප විය නොහැක.
ටෙලාස්ටින්

2
@ steve314 මූලික පංතිය සහ එහි සියලු උරුමකරුවන් එකම ගොනුවක පමණක් ජීවත් වන අවස්ථාවක් මට සිතාගත නොහැකිය . නිදසුනක් නොමැතිව, එය උරුමය අනිසි ලෙස භාවිතා කිරීම හෝ වියුක්ත කිරීම දුර්වල යැයි සිතීමට මම නැඹුරු වෙමි.
ටෙලාස්ටින්

3
YAGNI = ඔබට එය අවශ්‍යයි LSP = ලිස්කොව් ආදේශන මූලධර්මය OCP = විවෘත / වසා දැමීමේ මූලධර්මය SRP = තනි වගකීම් මූලධර්මය
බ්‍රයන් ග්ලේසර්

54

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


27

මම පොත කියවා නැත, නමුත් බොබ් මාමා අදහස් කළ දෙයට මට පිහියක් ගත හැකිය.

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

ගැටළුව නිවැරදි කිරීම සඳහා, ඔබට ආරක්ෂිත දේපලක විචල්‍යය සංයුක්ත කළ හැකිය:

protected string Name
{
    get { return name; }
    private set { name = value; }
}

nameමූලික පංතියේ ක්‍රියාත්මක කිරීමේ තොරතුරු හෙළි නොකර, නිර්මාපක තර්කයක් භාවිතා කර ව්‍යුත්පන්න පන්තියකින් ආරක්ෂිතව සැකසීමට මෙය ඉඩ දෙයි .


ඔබ ආරක්ෂිත කට්ටලයක් සහිත පොදු දේපලක් නිර්මාණය කළේය. ආරක්ෂිත ක්ෂේත්රය පුද්ගලික කට්ටලයක් සමඟ ආරක්ෂිත දේපලකින් විසඳිය යුතුය.
ඇන්ඩි

2
+1 දැන්. මම හිතන්නේ සෙටරයද ආරක්ෂා කළ හැකිය, නමුත් නව අගය වලංගුද නැද්ද යන්න පදනම් පාදකයට බලාත්මක කළ හැකිය.
ඇන්ඩි

ප්‍රතිවිරුද්ධ දෘෂ්ටි කෝණයකින් ඉදිරිපත් කිරීම සඳහා - මම මගේ සියලු විචල්‍යයන් මූලික පන්තියකින් ආරක්ෂා කරමි. ඒවා පොදු අතුරුමුහුණතක් හරහා පමණක් ප්‍රවේශ විය යුතු නම් එය ව්‍යුත්පන්න පන්තියක් නොවිය යුතුය, එහි අඩංගු විය යුත්තේ බේස් ක්ලාස් වස්තුවකි. නමුත් මම පන්ති 2 කට වඩා ගැඹුරු ධූරාවලියෙන් වැළකී සිටිමි
මාටින් බෙකට්

2
ඒ නිසා එය විශාල අතර වෙනස protectedහා publicසාමාජිකයන්. BaseTypeපොදු සාමාජිකයෙකු නිරාවරණය කරන්නේ නම් , එයින් ගම්‍ය වන්නේ සියලු ව්‍යුත්පන්න වර්ගවල එකම සාමාජිකයා එකම ආකාරයකින් ක්‍රියා DerivedTypeකළ යුතු බවයි. මන්දයත් උදාහරණයක් ලෙස කේතයක් වෙත BaseTypeයොමු කිරීමක් ලබා ගත හැකි අතර එම සාමාජිකයා භාවිතා කිරීමට අපේක්ෂා කරයි. ඊට වෙනස් ලෙස, නම් BaseTypeහෙලිදරව් වූ protectedසාමාජික, එවිට DerivedTypeප්රවේශ සාමාජික දී ඇති බව අපේක්ෂා කළ හැකිය base, නමුත් baseකිසිම දෙයක් වෙන්න බැහැ අනෙකුත් වඩා BaseType.
සුපර් කැට්

18

බොබ් මාමාගේ තර්කය මූලික වශයෙන් දුර ප්‍රමාණයකි: ඔබට පන්තියකට වැදගත් වන සංකල්පයක් තිබේ නම්, එම ගොනුවේ ඇති පන්තිය සමඟ සංකල්පය එකට බැඳ තබන්න. තැටියේ ගොනු දෙකක් හරහා වෙන් නොකෙරේ.

ආරක්ෂිත සාමාජික විචල්‍යයන් ස්ථාන දෙකක විසිරී ඇති අතර, එය මැජික් මෙන් පෙනේ. ඔබ මෙම විචල්ය අදාල, තවමත් එය මෙහි අර්ථ දක්වා නැත ... කොහේ ඇත එය අර්ථ? මේ අනුව දඩයම ආරම්භ වේ. protectedඔහුගේ තර්කය මුළුමනින්ම මග හැරීමට වඩා හොඳය .

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


9

දැනටමත් ඉතා හොඳ පිළිතුරු කිහිපයක්. එකතු කළ යුතු එක් දෙයක්:

බොහෝ නූතන OO භාෂාවල සෑම පන්තියක්ම තමන්ගේම ගොනුවකට ඇතුළත් කිරීම හොඳ පුරුද්දකි (ජාවා AFAIK හි) (කරුණාකර ඔබට බොහෝ විට ලිපිගොනු දෙකක් ඇති C ++ ගැන කරදර නොවන්න).

එබැවින් ව්‍යුත්පන්න පන්තියක කාර්යයන් විචල්‍ය අර්ථ දැක්වීමකට මූලාශ්‍ර කේතයේ “සිරස් අතට සමීප” පාදක පන්තියේ ආරක්ෂිත විචල්‍යයක් ලබා ගැනීම පාහේ කළ නොහැක්කකි. ආරක්ෂිත විචල්‍යයන් අභ්‍යන්තර භාවිතය සඳහා අදහස් කර ඇති බැවින් ඒවා බොහෝ විට "සමීපව සම්බන්ධිත සංකල්පයක්" බවට පත්වන බැවින් ඒවා ඉතා මැනවින් එහි තබා ගත යුතුය.


1
ස්විෆ්ට් වල නොවේ. සිත්ගන්නා කරුණ නම්, ස්විෆ්ට් සතුව “ආරක්ෂිත” නැත, නමුත් එයට “ගොනු පුද්ගලික” ඇති අතර එය “ආරක්ෂිත” සහ සී ++ “මිතුරා” යන දෙකම ප්‍රතිස්ථාපනය කරයි.
gnasher729

@ gnasher729 - ඇත්ත වශයෙන්ම, ස්විෆ්ට එහි උරුමය තුළ ස්මාල්ටෝක් විශාල ප්‍රමාණයක් ඇත. ස්මාල්ටෝක් සතුව පුද්ගලික විචල්‍යයන් සහ පොදු ක්‍රම හැර වෙනත් කිසිවක් නොමැත. ස්මාල්ටෝක් හි පුද්ගලික යන්නෙන් අදහස් වන්නේ පුද්ගලික ය: එකම පන්තියේ වස්තූන් දෙකකට පවා එකිනෙකාගේ විචල්‍යයන්ට ප්‍රවේශ විය නොහැක.
ජූල්ස්

4

මූලික අදහස නම්, ආරක්ෂිත යැයි ප්‍රකාශයට පත් කරන ලද “ක්ෂේත්‍රයක්” (නිදර්ශන මට්ටමේ විචල්‍යය) එය තිබිය යුතු ප්‍රමාණයට වඩා දෘශ්‍යමාන වන අතර ඔබ කැමති ප්‍රමාණයට වඩා අඩු “ආරක්ෂිත” ය. සී / සී ++ / ජාවා / සී # හි ප්‍රවේශ විකරණකාරකයක් නොමැත, එය “එකම එකලස් තුළ ළමා පන්තිවලට පමණක් ප්‍රවේශ විය හැකිය” ට සමාන වන අතර එමඟින් ඔබේ එක්රැස්වීමේදී ක්ෂේත්‍රයට පිවිසිය හැකි ඔබේම දරුවන් නිර්වචනය කිරීමේ හැකියාව ලබා දෙයි, නමුත් වෙනත් එක්රැස්වීම් වල නිර්මාණය කරන ලද දරුවන්ට එකම ප්‍රවේශයට ඉඩ නොදීම; C # හි අභ්‍යන්තර සහ ආරක්‍ෂිත විකරණකාරක ඇත, නමුත් ඒවා සංයෝජනය කිරීමෙන් ප්‍රවේශය “අභ්‍යන්තර හෝ ආරක්‍ෂිත” නොව “අභ්‍යන්තර හෝ ආරක්‍ෂිත” වේ. එබැවින්, ඔබ එම දරුවා ලියා හෝ වෙනත් අයෙකු කළත්, ඕනෑම දරුවෙකුට ආරක්ෂිත ක්ෂේත්‍රයක් ප්‍රවේශ විය හැකිය. ආරක්ෂිත යනු හැකර්වරයෙකුට විවෘත දොරකි.

එසේම, ඒවායේ අර්ථ දැක්වීම අනුව ක්ෂේත්‍ර වෙනස් කිරීම සඳහා සහජයෙන්ම වලංගු භාවයක් නොමැත. C # හි ඔබට කියවීමට පමණක් එකක් කළ හැකි අතර එමඟින් වටිනාකම් වර්ග effectively ලදායී ලෙස නියත වන අතර විමර්ශන වර්ග නැවත ආරම්භ කළ නොහැක (නමුත් තවමත් ඉතා විකෘති), නමුත් ඒ ගැන ය. එනිසා, පවා ආරක්ෂා කර ඇති, ඔබේ දරුවන්ට (ඔබට විශ්වාස කළ නොහැකි) මෙම ක්ෂේත්‍රයට ප්‍රවේශය ඇති අතර එය අවලංගු දෙයකට සැකසිය හැකි අතර එමඟින් වස්තුවේ තත්වය නොගැලපේ (වළක්වා ගත යුතු දෙයක්).

ක්ෂේත්ර සමඟ වැඩ කිරීම සඳහා පිළිගත් ක්රමය නම් ඒවා පුද්ගලික කර ඒවා දේපල, සහ / හෝ ලබා ගන්නෙකු සහ සැකසුම් ක්රමයක් සමඟ ප්රවේශ වීමයි. පංතියේ සියලුම පාරිභෝගිකයින්ට වටිනාකම අවශ්‍ය නම්, ලබා ගන්නා තැනැත්තා (අවම වශයෙන්) ප්‍රසිද්ධ කරන්න. දරුවන්ට පමණක් එය අවශ්‍ය නම්, ලබා ගන්නාව ආරක්ෂා කරන්න.

ප්‍රශ්නයට පිළිතුරු සපයන තවත් ප්‍රවේශයක් වන්නේ ඔබෙන්ම විමසීමයි; ළමා ක්‍රමයක කේතයට මගේ රාජ්‍ය දත්ත කෙලින්ම වෙනස් කිරීමේ හැකියාව අවශ්‍ය වන්නේ ඇයි? එම කේතය ගැන එය පවසන්නේ කුමක්ද? එහි මුහුණේ “සිරස් දුර” තර්කය එයයි. දරුවෙකු තුළ මව් තත්වය කෙලින්ම වෙනස් කළ යුතු කේතයක් තිබේ නම්, සමහර විට එම කේතය මුලින් ම දෙමව්පියන්ට අයිති විය යුතු ද?


4

එය සිත්ගන්නා සාකච්ඡාවකි.

අවංකව කිවහොත්, හොඳ මෙවලම් මඟින් මෙම "සිරස්" ගැටළු බොහොමයක් අවම කර ගත හැකිය. ඇත්ත වශයෙන්ම, මගේ මතය අනුව "ගොනුව" යන සංකල්පය ඇත්ත වශයෙන්ම මෘදුකාංග සංවර්ධනයට බාධාවක් වන දෙයක් - සැහැල්ලු වගු ව්‍යාපෘතිය ක්‍රියාත්මක වන දෙයක් (http://www.chris-granger.com/2012/04/12/light- වගුව --- a-new-ide-concept /).

පින්තූරයෙන් ලිපිගොනු ඉවතට ගන්න, ආරක්ෂිත විෂය පථය වඩාත් ආකර්ෂණීය වේ. ආරක්ෂිත සංකල්පය ස්මාල්ටෝක් වැනි භාෂා වලින් වඩාත් පැහැදිලි වේ - එහිදී ඕනෑම උරුමයක් පන්තියක මුල් සංකල්පය විස්තාරණය කරයි. එය මව් පංතිය කළ සෑම දෙයක්ම කළ යුතු අතර සෑම දෙයක්ම තිබිය යුතුය.

මගේ මතය අනුව, පන්ති ධූරාවලිය හැකි තරම් නොගැඹුරු විය යුතු අතර බොහෝ දිගුවන් සංයුතියෙන් පැමිණේ. එවැනි ආකෘති දී, මම පෞද්ගලික විචල්යයන් සඳහා කිසිම හේතුවක් පෙනෙන්නේ නෑ නෑ ඒ වෙනුවට ආරක්ෂා කළ යුතු. විස්තාරිත පංතිය මව් පංතියේ සියලු හැසිරීම් ඇතුළත් දිගුවක් නියෝජනය කළ යුතු නම් (එය එසේ විය යුතු යැයි මම විශ්වාස කරමි, එබැවින් පුද්ගලික ක්‍රම සහජයෙන්ම නරක යැයි මම විශ්වාස කරමි), දීර් class පංතිය එවැනි දත්ත ගබඩා කිරීම නියෝජනය නොකළ යුත්තේ ඇයි?

මෙය වෙනත් ආකාරයකින් කිවහොත් - ආරක්ෂිත විචල්‍යයකට වඩා පෞද්ගලික විචල්‍යයක් වඩාත් සුදුසු යැයි මට හැඟෙන ඕනෑම අවස්ථාවක, උරුමය යනු ගැටලුවට මුලින් ම විසඳුම නොවේ.


0

එහි එහි සඳහන් වන පරිදි, මෙය එක් හේතුවක් පමණි, එනම්, තාර්කිකව සම්බන්ධිත කේතය භෞතික සම්බන්ධිත ආයතන (ගොනු, පැකේජ සහ වෙනත්) තුළ තැබිය යුතුය. කුඩා පරිමාණයෙන් මෙය UI පෙන්වන පන්ති සමඟ DB විමසුම් පැකේජයක් තුළ තැබීමට හේතුව සමාන වේ.

කෙසේ වෙතත් ආරක්ෂිත විචල්‍යයන් නිර්දේශ නොකිරීමට ප්‍රධාන හේතුව වන්නේ ඒවා සංසරණය බිඳ දැමීමට නැඹුරු වීමයි. විචල්යයන් සහ ක්රමවලට හැකි තරම් සීමිත දෘශ්යතාවයක් තිබිය යුතුය; වැඩිදුර විමර්ශනය සඳහා ජොෂුවා බ්ලොච්ගේ Java ලදායී ජාවා , අයිතමය 13 - "පන්ති සහ සාමාජිකයින්ගේ ප්‍රවේශ්‍යතාව අවම කිරීම" බලන්න.

කෙසේ වෙතත්, ඔබ මෙම දැන්වීම් ලිටෙරාම් සියල්ලම ගිල්ඩ්ලයින් ලෙස පමණක් නොගත යුතුය; ආරක්ෂිත විචල්‍යයන් ඉතා නරක නම් ඒවා භාෂාව තුළ මුලින්ම ස්ථානගත නොවනු ඇත. ආරක්ෂිත ක්ෂේත්‍ර සඳහා සාධාරණ ස්ථානයක් පරීක්ෂණ රාමුවකින් මූලික පන්තිය තුළ ඇත (ඒකාබද්ධ පරීක්ෂණ පන්ති එය දිගු කරයි).


1
භාෂාවක් එයට ඉඩ දෙන නිසා එය කිරීම සුදුසු යැයි නොසිතන්න. ආරක්ෂිත ක්ෂේත්රවලට ඉඩ දීමට දෙවියන්ගේ හේතුවක් ඇතැයි මට විශ්වාස නැත; අපි ඇත්ත වශයෙන්ම මගේ සේවායෝජකයා වෙත ඒවා තහනම් කරමු.
ඇන්ඩි

2
Nd ඇන්ඩි මා කියූ දේ ඔබ කියවා නැත. ආරක්ෂිත ක්ෂේත්‍ර නිර්දේශ නොකරන බවත් මේ සඳහා හේතු ඇති බවත් මම කීවෙමි. ආරක්ෂිත විචල්‍යයන් අවශ්‍ය වන අවස්ථා පැහැදිලිවම තිබේ; ඔබට නියත අවසාන අගයක් අවශ්‍ය විය හැක්කේ උප පංතිවල පමණි.
m3th0dman

ඔබ විචල්ය සහ ක්ෂේත්රය එකිනෙකට වෙනස් ලෙස භාවිතා කරන බවක් පෙනෙන්නට ඇති හෙයින්, ඔබගේ පෝස්ට් සමහරක් නැවත කියවීමට ඔබට අවශ්ය විය හැකිය.
ඇන්ඩි

3
Nd ඇන්ඩි මම ආරක්ෂිත විචල්‍යයන් ගැන සඳහන් කළ බැවින් මම කතා කළේ දේශීය හෝ පරාමිති විචල්‍යයන් ගැන නොව ක්ෂේත්‍ර වෙත බව පැහැදිලිය. නියත නොවන ආරක්ෂිත විචල්‍යයන් ප්‍රයෝජනවත් වන අවස්ථාවක් ද මම සඳහන් කළෙමි; ක්‍රමලේඛකයින් කේත ලියන ආකාරය බලාත්මක කිරීම සමාගමකට වැරදිය.
m3th0dman

1
එය පැහැදිලිව පෙනෙන්නට තිබුනේ නම් මම ඔබව ව්‍යාකූල කර පහත් කොට සලකන්නේ නැත. ස්ටයිල්කොප්, එෆ්එක්ස්කොප් ධාවනය කිරීමට අප ගත් තීරණය මෙන්ම අපගේ ජ්‍යෙෂ් develop සංවර්ධකයින් විසින් මෙම රීතිය සකස් කරන ලද අතර ඒකක පරීක්ෂණ සහ කේත සමාලෝචන අවශ්‍ය වේ.
ඇන්ඩි

0

JUnit පරීක්ෂණ සඳහා ආරක්ෂිත විචල්‍යයන් භාවිතා කිරීම ප්‍රයෝජනවත් විය හැකි බව මට පෙනී ගියේය. ඔබ ඒවා පුද්ගලීකරණය කරන්නේ නම්, පරාවර්තනයකින් තොරව පරීක්ෂා කිරීමේදී ඔබට ඒවාට ප්‍රවේශ විය නොහැක. ඔබ බොහෝ රාජ්‍ය වෙනස්කම් හරහා සංකීර්ණ ක්‍රියාවලියක් පරීක්ෂා කරන්නේ නම් මෙය ප්‍රයෝජනවත් වේ.

ආරක්ෂිත ඒවා ලබා ගැනීමේ ක්‍රම මඟින් ඔබට ඒවා පුද්ගලික කළ හැකිය, නමුත් විචල්‍යයන් JUnit පරීක්ෂණයකදී පමණක් බාහිරව භාවිතා කිරීමට යන්නේ නම්, එය වඩා හොඳ විසඳුමක් බව මට විශ්වාස නැත.


-1

ඔව්, එය තරමක් අමුතු දෙයක් බව මම එකඟ වෙමි (මට මතක පරිදි) පොත සියලු පෞද්ගලික නොවන විචල්‍යයන් මග හැරිය යුතු දෙයක් ලෙස සාකච්ඡා කරයි.

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

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

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.