Introducere în încapsulare în C

Au existat cazuri când din cauza cerințelor de afaceri trebuie să scriem cod complex. Acest cod nu va fi ușor de utilizat și pare greu de înțeles. Pentru ca programul să pară mai ușor de citit, putem înfășura fragmentul de cod complex într-o capsulă și îl putem ascunde. Acest lucru va servi, de asemenea, ca un strat suplimentar de protecție împotriva oricărei injecții dăunătoare din cod. Putem folosi apoi această bucată de cod apelând instanța sa în programul principal, mai degrabă decât să scriem întregul grup de linii complexe. Această caracteristică se numește încapsulare. Este una dintre caracteristicile de bază ale limbajelor orientate pe obiecte. Cu toate acestea, nu se limitează numai la limbile OOP. În C, încapsularea a fost în ciuda absenței unor cuvinte cheie private și publice. Încapsularea este folosită de alte limbaje de programare precum C #, C ++, PHP, JAVA.

Funcționarea încapsulării în C

Pentru a înțelege modul de încapsulare, să luăm în considerare exemplul din viața reală. Luați în considerare o companie mare care are propria sa unitate de producție internă de cărți și le livrează clienților prin legarea cu furnizori terți. Pentru ca acest model de afaceri să funcționeze, vor exista diferite departamente implicate, precum departamentul de achiziții, departamentul de producție, departamentul de vânzări, departamentul de finanțe. Departamentul de achiziții se va ocupa de toate activitățile legate de achiziții, cum ar fi achiziționarea de cerneală, hârtii, huse de hârtie, imprimante, etc. Departamentul de vânzări va lucra la marketing, vânzări record. Responsabilitățile departamentului financiar de a efectua audituri financiare, de a calcula profiturile / pierderile și de a publica rapoarte pe baza cărora vor fi luate decizii strategice cheie. În cazul în care vânzările au scăzut și acest lucru a afectat finanțele afacerii. Atunci departamentul de Finanțe nu va avea voie să acceseze direct datele de vânzări. Departamentul de finanțe va trebui să solicite unui membru al echipei de vânzări pentru a obține datele relevante. Aceasta este încapsularea. Toate activitățile de finanțare sunt cuprinse într-o entitate numită „departamentul de finanțe”.

Acest concept de încapsulare este folosit în limbajul C pentru ascunderea și protejarea datelor. Poate fi implementat atunci când programul principal de apel are un obiect, obiectul ar trebui să poată găsi funcțiile aplicabile și, în același mod, să găsească datele.

Avantajele încapsulării în C

  1. Încapsularea ascunde implementarea unui program și, prin urmare, ușor de citit și de modificat în viitor, în conformitate cu cerințele de afaceri.
  2. Ne permite să implementăm versiunea de cod actualizată acolo unde este necesar, fără a fi necesară restructurarea întregului program.
  3. Securizează programul oferind funcționalitate de ascundere a datelor.
  4. Încapsularea promovează un mod modular de programare care face ca codul să fie rezistent.

De ce avem nevoie de încapsulare în C?

Avem nevoie de încapsulare în C pentru a manipula modificatorii de acces în C. Modificatorii de acces sunt prezenți în mod explicit în C ++, de exemplu, public, privat, dar nu sunt prezenți în mod explicit în C. Deși putem folosi această proprietate în C prin implementarea încapsulării. Încapsularea oferă, de asemenea, un cod securizat care poate fi înțeles mai bine printr-un exemplu furnizat în secțiunea de mai jos. Acest lucru promovează adaptabilitatea cu modificarea cerințelor, deoarece orice cod necesită o modificare poate fi modificată într-un fișier separat, fără a modifica nimic în programul principal. Acest lucru va oferi un cod simplu și fără erori până la o anumită măsură.

Exemplu de încapsulare în C

Datele în limba C sunt publice în mod implicit. Deși variabilele „Structură” pot fi declarate private, definindu-le separat de clasa principală. Acest lucru poate fi obținut având un antet și fișiere C sursă separate. Un fișier antet este urmat de extensia „.h” în timp ce fișierele C sunt urmate de extensia „.C”. În exemplul de mai jos: Există trei fișiere

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

p_variable.h: Este un fișier antet care trebuie inclus în alte fișiere „.c”. Acest fișier acționează ca o legătură între datele împrăștiate pe mai multe fișiere.

main_prog.c: Este fișierul principal de implementare. Când acest lucru este executat, atunci apelul funcției este făcut la funcțiile care sunt definite în alte fișiere C împreună cu structurile.

Access_pfile.c: Este un fișier care conține o structură. Deoarece „struct” necesită alocarea și alocarea de memorie, sunt folosite unele funcții din biblioteca C standard precum „malloc ()” și „alloc ()”.

Fișier: 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

Fișier: 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.
)

Fișier: 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;
)

ieşire:

Concluzie

Încapsularea este pasul principal către o programare orientată pe obiecte. Acest articol oferă informații despre Încapsulare în C. Folosind metode de accesorizare și de mutare, modificatori de acces, putem folosi încapsularea în C #, C ++, PHP. Avantajul proprietăților este că utilizatorii pot manipula obiectul din punct de vedere al datelor interne folosind un singur articol numit având date și funcționalități definite în acesta.

Articole recomandate

Acesta este un ghid pentru Încapsularea din C. Aici discutăm introducerea și necesitatea încapsulării în C împreună cu Avantaj și exemple. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Abstracție vs încapsulare
  2. Încapsulare în Python
  3. Încapsulare în Java
  4. Încapsulare în PHP
  5. Funcționarea încapsulării în JavaScript
  6. Încapsulare în JavaScript