Úvod do enkapsulácie v C

Vyskytli sa prípady, keď z dôvodu obchodných požiadaviek potrebujeme napísať komplexný kód. Tento kód nebude užívateľsky príjemný a vyzerá ťažko pochopiteľný. Aby bol program ľahší na čítanie, môžeme zložený útržok kódu zabaliť do kapsuly a skryť. Bude to tiež slúžiť ako dodatočná vrstva ochrany pred škodlivými injekciami v kóde. Potom môžeme tento kus kódu použiť tak, že namiesto jeho celého súboru zložitých riadkov zavoláme jeho inštanciu v hlavnom programe. Táto funkcia sa nazýva zapuzdrenie. Je to jedna z hlavných čŕt objektovo orientovaných jazykov. Nie je to však obmedzené iba na jazyky OOP. V C bolo zapuzdrenie napriek absencii súkromných a verejných kľúčových slov. Zapuzdrenie používajú rôzne programovacie jazyky ako C #, C ++, PHP, JAVA.

Fungovanie enkapsulácie v C

Aby sme pochopili fungovanie enkapsulácie, uvážme príklad z reálneho života. Zoberme si veľkú spoločnosť, ktorá má vlastnú internú výrobnú jednotku kníh a dodáva ich zákazníkom prostredníctvom väzby s predajcami tretích strán. Aby tento obchodný model fungoval, zapoja sa rôzne oddelenia, ako napríklad oddelenie obstarávania, výrobné oddelenie, obchodné oddelenie, finančné oddelenie. Oddelenie obstarávania sa postará o všetky činnosti súvisiace s obstarávaním, ako je obstarávanie atramentu, papiera, papierových obálok, tlačiarní atď. Obchodné oddelenie bude pracovať na marketingu, zázname predaja. Povinnosti finančného oddelenia vykonávať finančné audity, počítať zisky / straty a zverejňovať správy, na základe ktorých sa prijmú kľúčové strategické rozhodnutia. V prípade, že predaj klesol, a to malo dopad na finančné prostriedky podniku. Finančné oddelenie nebude mať priamy prístup k údajom o predaji. Finančné oddelenie bude musieť požiadať člena obchodného tímu o získanie príslušných údajov. Toto je zapuzdrenie. Všetky finančné činnosti sú zabalené do jedného subjektu nazývaného „finančné oddelenie“.

Táto koncepcia zapuzdrenia sa používa v jazyku C na skrývanie a ochranu údajov. Môže sa implementovať, keď má hlavný volajúci objekt objekt, objekt by mal byť schopný nájsť použiteľné funkcie a rovnakým spôsobom nájsť dáta.

Výhody zapuzdrenia v C

  1. Zapuzdrenie skrýva implementáciu programu, a preto je v budúcnosti ľahko čitateľné a modifikovateľné podľa obchodných požiadaviek.
  2. To nám umožňuje nasadiť aktualizovanú verziu kódu všade tam, kde je to potrebné, bez toho, aby bolo potrebné reštrukturalizovať celý program.
  3. Zabezpečuje program poskytovaním funkcií skrytia údajov.
  4. Zapuzdrenie podporuje modulárny spôsob programovania, ktorý zaisťuje odolnosť kódu.

Prečo potrebujeme zapuzdrenie v C?

Potrebujeme zapuzdrenie v C, aby sme mohli manipulovať s modifikátormi prístupu v C. Modifikátory prístupu sú výslovne prítomné v C ++ napríklad pre verejné, súkromné, ale nie sú explicitne prítomné v C. Hoci túto vlastnosť môžeme využiť v implementácii zapuzdrenia. Zapuzdrenie tiež poskytuje bezpečný kód, ktorý je možné lepšie pochopiť na príklade uvedenom v nižšie uvedenej časti. To podporuje prispôsobivosť s meniacimi sa požiadavkami, pretože ktorýkoľvek kód, ktorý vyžaduje zmenu, môže byť upravený v samostatnom súbore bez zmeny v hlavnom programe. Toto do istej miery poskytne jednoduchý a bezchybný kód.

Príklad zapuzdrenia v C

Dáta v jazyku C sú predvolene verejné. Aj keď premenné „Struct“ je možné deklarovať ako súkromné ​​definovaním oddelene od hlavnej triedy. To sa dá dosiahnuť samostatnou hlavičkou a zdrojovými súbormi C. Za hlavičkovým súborom nasleduje prípona „.h“, zatiaľ čo za súbormi C nasleduje prípona „.C“. V nasledujúcom príklade: Existujú tri súbory

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

p_variable.h: Je to hlavičkový súbor, ktorý sa má zahrnúť do iných súborov „.c“. Tento súbor slúži ako spojenie medzi údajmi roztrúsenými vo viacerých súboroch.

main_prog.c: Je to hlavný implementačný súbor. Keď sa toto vykoná, vykoná sa volanie funkcií k funkciám, ktoré sú definované v iných C súboroch spolu so štruktúrami.

Access_pfile.c: Je to súbor obsahujúci štruktúru. Pretože „struct“ vyžaduje alokáciu a delokáciu pamäte, používajú sa niektoré funkcie zo štandardnej knižnice C, ako napríklad „malloc ()“ a „alloc ()“.

Súbor: 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

Súbor: 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.
)

Súbor: 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;
)

Výkon:

záver

Zapuzdrenie je hlavným krokom smerom k objektovo orientovanému programovaniu. Tento článok poskytuje informácie o enkapsulácii v C. Pomocou prístupových a mutačných metód, modifikátorov prístupu, môžeme použiť enkapsuláciu aj v C #, C ++, PHP. Výhoda vlastností spočíva v tom, že používatelia môžu s objektom manipulovať z hľadiska interných údajov pomocou jedinej pomenovanej položky, ktorá má v nej definované údaje a funkcie.

Odporúčané články

Toto je sprievodca zapuzdrením v C. Tu diskutujeme o zavedení a potrebe zapuzdrenia v C spolu s výhodou a príkladmi. Viac informácií nájdete aj v ďalších navrhovaných článkoch -

  1. Abstrakcia vs zapuzdrenie
  2. Zapuzdrenie v Pythone
  3. Zapuzdrenie do Java
  4. Zapuzdrenie v PHP
  5. Fungovanie zapuzdrenia v JavaScripte
  6. Zapuzdrenie do JavaScriptu

Kategórie: