Sobes.tech
Middle

Принципҳои SOLID чист?

sobes.tech AI

Ҷавоб аз AI

SOLID — номи ҳарфҳои аввалини панҷ принсипи барномасозии объектӣ-равона пешниҳодшуда аз ҷониби Роберт Мартин мебошад. Онҳо кӯмак мекунанд, ки системаҳои васеъшаванда, нигоҳдоштанӣ ва санҷишшаванда эҷод кунанд.

  1. Принсипи масъулияти ягона (S):

    • Функсия, синф ё модул бояд танҳо як сабаби тағирот дошта бошад. Ин маъно дорад, ки ҳар як компонент дар системаи бояд вазифаи ягона ва равшан муайяншударо иҷро кунад.
  2. Принсипи кушод/банд (O):

    • Ҳақиқати нармафзорӣ (синфҳо, модулҳо, функсияҳо ва ғ.) бояд барои васеъшавӣ кушод ва барои тағирот баста бошад. Функсионалият нав бояд бо эҷоди коди нав илова карда шавад, на тағир додани коди мавҷуда ва санҷишшуда.
  3. Принсипи ивазкунӣ Лисков (L):

    • Объектҳои синфи асосӣ бояд бо объектҳои субсинфҳои онҳо ивазшаванда бошанд бе вайрон кардани дурустии барнома. Агар S як субтипи T бошад, пас объекти T метавонад бо объекти S иваз карда шавад бе тағир додани хосиятҳои дилхоҳи барнома (дурустӣ, функсионалӣ ва ғ.).
  4. Принсипи ҷудо кардани интерфейсҳо (I):

    • Мизоҷон набояд аз интерфейсҳое, ки онҳо истифода намебаранд, вобаста бошанд. Интерфейсҳои калон бояд ба интерфейсҳои хурдтар ва махсустар тақсим шаванд, то мизоҷон танҳо бо он методҳо кор кунанд, ки воқеан ба онҳо ниёз доранд.
  5. Принсипи инверсияи вобастагиҳо (D):

    • Модулҳои сатҳи болоӣ набояд аз модулҳои сатҳи поёнӣ вобаста бошанд. Ҳар ду навъи модул бояд вобаста ба абстраксияҳо бошанд. Абстраксияҳо набояд аз тафсилот вобаста бошанд. Тафсилот бояд вобаста ба абстраксияҳо бошанд. Ин ба истифодаи намунаҳо, монанди Dependency Injection, оварда мерасонад.

Принсипҳои SOLID тавсияҳо мебошанд, на қоидаҳои қатъӣ, ва татбиқи онҳо талаб мекунад, ки дарк кардани контексти лоиҳа муҳим аст.