Принсипҳои SOLID
Принсипҳои барноманависии объектӣ SOLID барои эҷоди нармафзори функсионалӣ ва нигоҳдоришавандаи дарозмуддат дар асоси барноманависии объектӣ (БО) заруранд.
Принсипҳои асосии SOLID:
- Масъулияти ягона - ҳар як объект фақат як масъулият (мақсад) дорад, ки он низ бояд бо синфи ҷудогона ифода шавад. Масалан, гирифтани маълумот аз пойгоҳи додаҳо ва собит намудани онҳо бояд синфҳои гуногун дошта бошанд, то ин ду раванд бо ҳам омехта нашаванд.
- Кушодагӣ / пӯшидагӣ - синфҳо бояд барои тағйир ва илова кардани вазифаҳои нав кушода бошанд ва ҳамзамон барои тағйири рамзи аслӣ пӯшида бошанд. Аз ин рӯ, ба синф модулҳо ва функсияҳои дигарро илова кардан мумкин аст, аммо рамзи аслӣ бояд ҳамон тавре боқӣ монда, тағйир наёбад.
- Ивази Лисков - ҳамаи фарзандҳои эҷодшуда бояд рафтори (вазифаҳои иҷрошавандаи) волидаи худро нигоҳ доранд ва намоиш диҳанд.
- Ҷудо кардани интерфейс - интерфейсҳои калонро бояд ба интерфейсҳои хурдтар ва маҳдудтар ҷудо кард, то корбаронро бо маълумоти изофӣ бор накард.
- Инверсияи вобастагиҳо - объектҳои сатҳҳои болоӣ, масалан, синфҳо, набояд аз модулҳои сатҳҳои поинӣ вобаста бошанд, аммо ҳамаи онҳо бояд аз абстраксияҳо вобаста бошанд.
Инчунин бинед
-
принсипи
DRY,
ки нармафзорро ба ҷузъҳои хурд ҷудо мекунад -
принсипи
KISS,
ки пешниҳод мекунад, ки аз мураккаб кардани нармафзор даст кашед -
принсипи
YAGNI,
ки пешниҳод мекунад, ки аз функсионалии изофӣ даст кашед -
принсипи
CQS,
ки барои ҳар як функсия фақат як фармон муқаррар мекунад -
принсипи
LoD,
ки дар таҳияи нармафзор истифода мешавад -
принсипи ҷудо кардани масъулият,
ки дар таҳияи нармафзор истифода мешавад