Što je djelomični razred?

Djelomična klasa je značajka u nekim objektno orijentiranim programskim jezicima koja omogućuje da se implementacija klase podijeli između više datoteka izvornog koda. Djelomične klase, koje se također nazivaju djelomični tipovi, ne postoje u mnogim programskim jezicima, osobito u starijim kao što su C++ i Java. Svaki jezik koji implementira djelomične klase, kao što su C# i Ruby, rješava implementaciju malo drugačije.

Općenito, djelomične klase koriste ključnu riječ “partial” za označavanje dijelova klase, a hoće li ključna riječ biti napisana velikim slovima ovisi o programskom jeziku koji se koristi. Svaki dio klase inicijalizira se na isti način s identičnim deklaracijama klase, a bez ove “djelomične” ključne riječi bilo bi nezakonito kreirati više klasa u više datoteka koje sve s istim imenom. Ključna riječ “djelomično” govori prevoditelju ili tumaču, ovisno o jeziku, da spoji sve klase u jednu veliku jedinicu. Svi različiti dijelovi klase moraju imati istu vidljivost, bilo da su javni, privatni ili zaštićeni. Ako je jedan dio klase određen kao apstraktan, spojena klasa također se označava kao apstraktna, čak i ako niti jedan od ostalih pojedinačnih dijelova nije označen kao takav.

Implementacija djelomične klase u više datoteka ima neke značajne prednosti i u stilu programiranja i u organizaciji. Djelomične klase omogućuju eksplicitno odvajanje povezanih dijelova koda u specijaliziranije grupe. Osim toga, djelomična klasa omogućuje više programera da rade na određenim dijelovima koda bez potencijalnog ometanja ostalih i slučajnog prepisivanja revizija. Čak i za pojedinačne programere, djelomične klase mogu biti korisne jer se mogu koristiti za stvaranje vrlo velikih klasa bez stvaranja jedne glomazne datoteke koju je teško organizirati i pročitati.

Djelomični obrasci implementacije klase također imaju neke značajne nedostatke. Unatoč tome što su pod okriljem objektno orijentiranog programiranja, djelomične klase zapravo krše principe enkapsulacije koji su središnji za objektno orijentirano programiranje. U objektno orijentiranom programiranju, klasa bi trebala biti jedinstveni entitet koji ima svoja jedinstvena stanja i ponašanja, samostalan je i može se koristiti kao kohezivna jedinica. Djelomične klase krše ovu ideju jer svaka djelomična klasa djeluje kao jedna zasebna klasa. Iako su dijelovi koji čine djelomičnu klasu spojeni u jednu veliku klasu tijekom izvođenja, dijelovi parcijalne klase često su neovisni entiteti koji se mogu koristiti sami bez potrebe za ikakvim spajanjem.