Kas yra dalinė klasė?

Dalinė klasė yra kai kurių objektinio programavimo kalbų funkcija, leidžianti klasės įgyvendinimą padalyti tarp kelių šaltinio kodo failų. Dalinės klasės, dar vadinamos daliniais tipais, neegzistuoja daugelyje programavimo kalbų, ypač senesnėse, tokiose kaip C++ ir Java. Kiekviena kalba, kuri įgyvendina dalines klases, pvz., C# ir Ruby, įgyvendina šiek tiek skirtingai.

Apskritai, dalinės klasės naudoja „dalinį“ raktinį žodį, kad žymėtų klasės elementus, o ar raktinis žodis rašomas didžiosiomis raidėmis, priklauso nuo naudojamos programavimo kalbos. Kiekviena klasės dalis inicijuojama tokiu pačiu būdu naudojant identiškas klasių deklaracijas, o be šių „dalinių“ raktinių žodžių būtų neteisėta kurti kelias klases keliuose failuose tuo pačiu pavadinimu. „Dalinis“ raktinis žodis nurodo kompiliatoriui arba vertėjui, priklausomai nuo kalbos, sujungti visas klases į vieną didelį vienetą. Visos atskiros klasės dalys turi būti matomos vienodai, nesvarbu, ar tai vieša, privati ​​ar saugoma. Jei viena klasės dalis pažymėta kaip abstrakčia, sujungta klasė taip pat laikoma abstrakčia, net jei jokia kita atskira dalis nebuvo tokia priskirta.

Dalinės klasės įdiegimas keliuose failuose turi keletą reikšmingų pranašumų tiek programavimo stiliumi, tiek organizavimu. Dalinės klasės leidžia aiškiai atskirti susijusias kodo dalis į labiau specializuotas grupes. Be to, dalinė klasė leidžia keliems programuotojams dirbti su konkrečiomis kodo dalimis, netrukdant kitoms ir netyčia neperrašant pataisų. Net ir pavieniams programuotojams dalinės klasės gali būti naudingos, nes jas galima naudoti kuriant labai dideles klases, taip pat nesukuriant vieno sudėtingo failo, kurį sunku tvarkyti ir perskaityti.

Dalinės klasės įgyvendinimo modeliai taip pat turi keletą reikšmingų trūkumų. Nepaisant objektinio programavimo skėčio, dalinės klasės iš tikrųjų pažeidžia objektinio programavimo inkapsuliavimo principus. Objektiniame programavime klasė turėtų būti viena vieninga esybė, turinti savo unikalias būsenas ir elgesį, yra savarankiška ir gali būti naudojama kaip vientisas vienetas. Dalinės klasės pažeidžia šią idėją, nes kiekviena dalinė klasė veikia kaip atskira klasė. Nors dalys, sudarančios dalinę klasę, vykdymo metu sujungiamos į vieną didelę klasę, dalinės klasės dalys dažnai yra nepriklausomi objektai, kuriuos galima naudoti atskirai, nereikia jokios sujungimo formos.