Uvod u kapsulu u C

Bilo je slučajeva da zbog poslovnih zahtjeva moramo napisati složeni kod. Ovaj kôd neće biti jednostavan za korisnika i izgleda teško razumljiv. Da bi program izgledao lakše za čitanje, možemo složeni isječak koda zamotati u kapsulu i sakriti ga. Ovo će također poslužiti kao dodatni sloj zaštite od zlonamjernih ubrizgavanja u kod. Zatim možemo koristiti ovaj dio koda pozivanjem njegove instance u glavni program, a ne pisanjem čitavog niza složenih redaka. Ova se značajka naziva enkapsulacija. To je jedno od osnovnih obilježja objektno orijentiranih jezika. Međutim, nije ograničen samo na OOP jezike. U C, enkapsulacija je usprkos nepostojanju privatnih i javnih ključnih riječi. Inkapsulacija se koristi u raznim drugim programskim jezicima poput C #, C ++, PHP, JAVA.

Rad inkapsulacije u C

Da bismo razumjeli rad enkapsulacije, razmotrimo primjer iz stvarnog života. Razmislite o velikoj tvrtki koja ima vlastitu proizvodnu jedinicu knjiga i isporučuje ih kupcima vezujući se uz treće dobavljače. Da bi ovaj poslovni model radio, bit će uključeni različiti odjeli poput odjela nabave, odjela proizvodnje, odjela prodaje, odjela za financije. Odjel nabave vodit će brigu o svim aktivnostima vezanim uz nabavu poput nabavke tinte, papira, korica papira, pisača itd. Prodajni odjel će raditi na marketingu, rekordnoj prodaji. Odgovornosti odjela financija za provođenje financijskih revizija, izračunavanje dobiti / gubitka i objavljivanje izvještaja na temelju kojih će se donositi ključne strateške odluke. U slučaju da prodaja propadne, a to utječe na financije poslovanja. Tada Odjelu za financije neće biti omogućen izravan pristup podacima o prodaji. Odjel za financije morat će zatražiti od člana prodajnog tima da dobije relevantne podatke. Ovo je enkapsulacija. Sve su aktivnosti financiranja okupljene u jednom entitetu koji se zove „odjel za financije“.

Ovaj se pojam enkapsulacije koristi na jeziku C za skrivanje i zaštitu podataka. Može se implementirati kada glavni pozivni program ima objekt, objekt treba biti u mogućnosti pronaći primjenjive funkcije i na isti način naći podatke.

Prednosti inkapsulacije u C

  1. Inkapsulacija skriva implementaciju programa te ga je stoga lako čitati i mijenjati u budućnosti u skladu s poslovnim zahtjevima.
  2. Omogućuje nam raspoređivanje ažurirane verzije koda kad god je to potrebno, a ne zahtijeva da se cijeli program restrukturira.
  3. Ona osigurava program pružajući funkcionalnost skrivanja podataka.
  4. Inkapsulacija promovira modularni način programiranja čineći kod elastičnim.

Zašto nam je potrebna inkapsulacija u C?

Potrebna nam je enkapsulacija na C da bismo manipulirali modifikatorima pristupa u C. Modifikatori pristupa izričito su prisutni u C ++ za npr. Javni, privatni, ali nisu izričito prisutni u C. Iako to svojstvo u C možemo iskoristiti primjenom enkapsulacije. Inkapsulacija također pruža siguran kôd koji se može bolje razumjeti primjerom navedenim u donjem odjeljku. To promovira prilagodljivost promjenjivim zahtjevima jer onaj kod koji zahtijeva promjenu može se izmijeniti u zasebnoj datoteci bez ikakvih promjena u glavnom programu. Tako ćete dobiti kôd jednostavan i bez pogreške do neke mjere.

Primjer kapsulacije u C

Podaci na jeziku C prema zadanom su javni. Iako se „Struct“ varijable mogu proglasiti privatnim definirajući ih odvojeno od glavne klase. To se može postići ako imate zasebno zaglavlje i izvorne datoteke C. Datoteci zaglavlja slijedi nastavak ".h", dok datoteke C slijedi ekstenzija ".C". U primjeru u nastavku: Postoje tri datoteke

  1. p_variable.h
  2. main_prog.c
  3. Access_pfile.c

p_variable.h: To je datoteka zaglavlja koja treba biti uključena u druge ".c" datoteke. Ova datoteka djeluje kao poveznica između podataka razasutih po više datoteka.

main_prog.c: To je glavna implementacijska datoteka. Kad se ovo izvrši, tada se upućuje poziv funkcijama funkcijama koje su definirane u ostalim C datotekama zajedno sa strukturama.

Access_pfile.c: To je datoteka koja sadrži strukturu. Budući da „struct“ zahtijeva raspodjelu i de-dodjelu memorije, koriste se neke funkcije iz standardne C biblioteke poput „malloc ()“ i „alloc ()“.

Datoteka: p_variable.h

#ifndef PRIVATE_VARIABLE
#define PRIVATE_VARIABLE
struct Con; // It is a variable to store contact
struct Con * create_contact(); // functional call to create function
void delete_contact( struct Con * some_contact ); // functional call to delete function
#endif //PRIVATE_VAR

Datoteka: Access_pfile.c

#include "p_variable.h" //we hav included header file in this file so as to access the structure members. This is //an indirect way of accessing structures and thus implementing encapsulation.
#include
#include
struct Con //structure definition containing two members. Both the members are integer type
(
int mob_number;
int flat_number;
);
struct Con * create_contact() // structure declaration. In this code section we allocate memory for the data we //need to input in the above defined members. Malloc function allocates the memory.
(
struct Con * some_contact;
some_contact = malloc(sizeof(struct Con));
some_contact->mob_number = 1234567891;
some_contact->flat_number = 541;
return( some_contact );
)
void delete_contact( struct Con * some_contact )
(
free(some_contact); // this is tandard C function to de- allocate the memory. It frees up the memory so that //the same can be used by other programs.
)

Datoteka: main_prog.c

#include "p_variable.h"
#include
int main()
(
struct Con * Meghna;
Meghna = create_contact();
printf( "Mobile number: %d\n", Meghna->mob_number); // This should cause compile time error as we are //trying to access the private struct member
delete_contact( Meghna );
return 0;
)

Izlaz:

Zaključak

Inkapsulacija je vodeći korak prema objektno orijentiranom programiranju. Ovaj članak daje informacije o enkapsulaciji u C. Koristeći accessor i mutator metode, modifikatore pristupa možemo iskoristiti i enkapsulaciju u C #, C ++, PHP. Prednost svojstava je u tome što korisnici mogu manipulirati objektom s internog podatkovnog stajališta koristeći jednu imenovanu stavku s podacima i funkcijama definiranim u njoj.

Preporučeni članci

Ovo je vodič za Inkapsulaciju u C. Ovdje smo raspravljali o uvođenju i potrebi enkapsulacije u C zajedno s Prednošću i primjerima. Možete i proći naše druge predložene članke da biste saznali više -

  1. Apstrakcija vs enkapsulacija
  2. Inkapsulacija u Pythonu
  3. Inkapsulacija u Javi
  4. Inkapsulacija u PHP
  5. Rad inkapsulacije u JavaScript-u
  6. Inkapsulacija u JavaScriptu

Kategorija: