Sobes.tech
Junior — Middle

Որ իրավիճակներում օբյեկտային ուղղված ծրագրավորման մեջ ժառանգության օգտագործումը սխալ կամ ցանկալի չէ համարում?

sobes.tech AI

Պատասխան AI-ից

Օգտագործումը ժառանգության θεωվում է սխալ կամ ցանկալի չէ հետևյալ իրավիճակներում:

  • Երբ ենթասինքը իրականում բազային դասի ճշմարիտ տեսակ չէ (Liskov փոխարինման սկզբունքի խախտում):
  • Եթե ժառանգությունը օգտագործվում է կոդի վերօգտագործման համար և ոչ թե արտահայտելու համար "է" (is-a) հարաբերությունը:
  • Երբ ժառանգականությունը շատ խոր և բարդ է դառնում, ինչը դժվարացնում է կոդի պահպանությունը և հասկանալը:
  • Եթե ժառանգությունը հանգեցնում է դասերի միջև ուժեղ կապի, ինչը դժվարացնում է փոփոխությունները և ընդլայնումները:
  • Երբ ավելի ցանկալի է կոմպոզիցիա (has-a) օգտագործել ժառանգության փոխարեն՝ ավելի մեծ ճկունություն ապահովելու համար:

Օրինակ, եթե Car դասը ժառանգում է Engine-ից, դա սխալ է, քանի որ մեքենան մի շարժիչ չէ: Ավելի լավ է օգտագործել կոմպոզիցիա՝ Car պարունակում է Engine օբյեկտ։