එස් = තනි වගකීම් මූලධර්මය
එබැවින් හොඳින් සංවිධානය වූ ෆෝල්ඩරයක් / ගොනු ව්යුහයක් සහ වස්තු ධූරාවලියක් දැකීමට මම බලාපොරොත්තු වෙමි. සෑම පන්තියකම / ක්රියාකාරීත්වයේ කොටසක් එහි ක්රියාකාරිත්වය ඉතා පැහැදිලිව පෙනෙන බව නම් කළ යුතු අතර, එම කාර්යය ඉටු කිරීම සඳහා එහි තර්කනය පමණක් තිබිය යුතුය.
කේත පේළි දහස් ගණනක් සහිත විශාල කළමනාකරු පන්ති ඔබ දුටුවේ නම්, එය තනි වගකීමක් අනුගමනය නොකරන බවට ලකුණකි.
O = විවෘත / සංවෘත මූලධර්මය
මෙය මූලික වශයෙන් අදහස වන්නේ දැනට පවතින ක්රියාකාරිත්වය වෙනස් කිරීම සඳහා අවම බලපෑමක් ඇති / අවශ්ය වන නව පන්ති හරහා නව ක්රියාකාරිත්වය එක් කළ යුතු බවයි.
ක්රියාකාරීත්වයේ කොටසක් සැබෑ ක්රියාවට නැංවීමෙන් වෙන් කිරීම සඳහා වස්තු උරුමය, උප-ටයිප් කිරීම, අතුරුමුහුණත් සහ වියුක්ත පංති විශාල ප්රමාණයක් භාවිතා කරනු ඇතැයි මම අපේක්ෂා කරමි. මුල්.
එල් = ලිස්කොව් ආදේශන මූලධර්මය
උප වර්ග ඔවුන්ගේ මව් වර්ගය ලෙස සැලකීමේ හැකියාව සමඟ මෙය සම්බන්ධ වේ. ඔබ නිසි උරුම වස්තු ධූරාවලියක් ක්රියාත්මක කරන්නේ නම් මෙය C # කොටුවෙන් පිටතට පැමිණේ.
කේතයන් පොදු වස්තූන් ඒවායේ මූලික වර්ගය ලෙස සලකන ආකාරය සහ උප වර්ගයන් ස්ථාපනය කිරීම හා වැඩ කිරීම වෙනුවට මූලික / වියුක්ත පංතිවල ඇමතුම් ක්රම දැකීමට මම බලාපොරොත්තු වෙමි.
I = අතුරුමුහුණත් වෙන් කිරීමේ මූලධර්මය
මෙය SRP වලට සමානය. මූලික වශයෙන්, ඔබ decoupled ඔබේ පද්ධතිය තබා ගැනීමට මුහුණත් හා අය සමග වැඩ ලෙස ක්රියාකාරීත්වය කුඩා අවධියේ පසුවේ නිර්වචනය (උදා: FileManager
ගොනුව I / O සමඟ කටයුතු තනි responsibilty ඇති හැකි වුවත්, මෙය ක්රියාත්මක කළ හැකි IFileReader
සහ IFileWriter
කියවීමේ සඳහා නිශ්චිත ක්රමය අර්ථ දැක්වීම් අඩංගු සහ ලිපිගොනු ලිවීම).
D = පරායත්ත ප්රතිලෝම මූලධර්මය.
නැවතත් මෙය සම්බන්ධ වන්නේ පද්ධතියක් විසන්ධි කිරීම සඳහා ය. සමහර විට ඔබ වැනි විසඳුම භාවිතා කෙරෙමින් .NET සත්කාර එන්නත් පුස්තකාල භාවිතය, පිළිබඳ විමසිල්ලෙන් විය කැමතියි Unity
හෝ Ninject
හෝ එවැනි ServiceLocator පද්ධතිය AutoFacServiceLocator
.