Sissejuhatus kapseldamisse C

On olnud juhtumeid, kus ärinõuete tõttu peame kirjutama keeruka koodi. See kood ei ole kasutajasõbralik ja tundub raskesti mõistetav. Programmi hõlpsamaks lugemiseks saame keeruka koodilõigu kapslisse mähkida ja selle peita. See toimib ka täiendava kaitsekihina koodis esinevate pahatahtlike süstide vastu. Seejärel saame seda kooditükki kasutada, kutsudes selle eksemplari põhiprogrammi, mitte kogu hunniku keerulisi ridu kirjutades. Seda omadust nimetatakse kapseldamiseks. See on objektorienteeritud keelte üks põhijooni. Kuid see ei piirdu ainult OOP-keeltega. C-s on kapseldamine toimunud hoolimata privaatsete ja avalike märksõnade puudumisest. Kapseldamist kasutavad ka paljud teised programmeerimiskeeled, näiteks C #, C ++, PHP, JAVA.

Kapseldamise toimimine C-s

Kapseldamise toimimise mõistmiseks vaatleme reaalse elu näidet. Mõelge suurettevõttele, kellel on oma sisemine raamatutootmisüksus ja kes tarnib neid klientidele, sidudes neid kolmandate osapooltega. Selle ärimudeli toimimiseks kaasatakse erinevad osakonnad nagu hankeosakond, tootmisosakond, müügiosakond, finantsosakond. Hankeosakond hoolitseb kõigi hangetega seotud tegevuste eest, nagu tindi, paberite, paberikatete, printerite jne hankimine. Müügiosakond tegeleb turunduse ja plaadimüügiga. Finantsosakonna kohustused viia läbi finantsauditeid, arvutada kasumit / kahjumit ja avaldada aruandeid, mille põhjal võetakse vastu peamised strateegilised otsused. Juhul kui müük langes ja see mõjutas ettevõtte rahandust. Siis ei luba rahandusosakond otsest juurdepääsu müügiandmetele. Finantsosakond peab asjakohaste andmete saamiseks taotlema müügimeeskonna liiget. See on kapseldamine. Kõik rahandustegevused on koondatud ühte üksusesse, mida nimetatakse finantsosakonnaks.

Seda kapseldamise mõistet kasutatakse C-keeles andmete peitmiseks ja kaitsmiseks. Seda saab rakendada siis, kui peamisel helistamisprogrammil on objekt, objekt peaks suutma leida rakendatavad funktsioonid ja samal viisil ka andmed.

Kapseldamise eelised C-s

  1. Kapseldamine varjab programmi rakendamist ja on seda vastavalt ettevõtte vajadustele tulevikus hõlpsasti loetav ja muudetav.
  2. See võimaldab meil värskendatud koodiversiooni juurutada vajaduse korral, ilma et oleks vaja kogu programmi ümber korraldada.
  3. See kindlustab programmi andmete varjamise funktsionaalsuse abil.
  4. Kapseldamine soodustab modulaarset programmeerimisviisi, muutes koodi vastupidavaks.

Miks me vajame kapseldamist C-s?

C-s juurdepääsu modifikaatoritega manipuleerimiseks vajame kapseldamist C-s. Juurdepääsu modifikaatoreid leidub C ++-s selgesõnaliselt näiteks avalikes, eraviisilistes, kuid C-s neid otseselt pole. Ehkki C-s saame seda omadust kasutada kapseldamise kaudu. Kapseldamine pakub ka turvalist koodi, mida saab paremini mõista allolevas jaotises toodud näitega. See soodustab kohanemisvõimet muutuvate nõuetega, kuna seda, kumb koodi nõuab, saab muuta eraldi failina ilma põhiprogrammis midagi muutmata. See annab lihtsa ja veatu koodi mingil määral.

C kapseldamise näide

C-keeles olevad andmed on vaikimisi avalikud. Ehkki muutuja „Struct” saab kuulutada privaatseks, määratledes selle põhiklassist eraldi. Seda on võimalik saavutada eraldi päise- ja C-failide abil. Päisefailile järgneb laiend .h, C-failidele aga laiend .C. Allpool toodud näites: faile on kolm

  1. p_variable.h
  2. main_prog.c
  3. Juurdepääs_fail.c

p_variable.h: see on päisefail, mis tuleb lisada muudesse .c-failidesse. See fail toimib lingina mitme faili vahel hajutatud andmete vahel.

main_prog.c: see on peamine rakendusfail. Kui see on täidetud, siis kutsutakse funktsioon funktsioonidesse, mis on määratletud teistes C-failides koos struktuuridega.

Access_pfile.c: See on fail, mis sisaldab struktuuri. Kuna “struct” nõuab mälu eraldamist ja eraldamist, kasutatakse mõnda standardse C teegi funktsiooni, näiteks “malloc ()” ja “alloc ()”.

Fail: 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

Fail: 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.
)

Fail: 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äljund:

Järeldus

Kapseldamine on juhtiv samm objektorienteeritud programmeerimise suunas. See artikkel annab teavet kapseldamise kohta C-s. Kasutades ligipääsu- ja muteerimismeetodeid, juurdepääsu modifikaatoreid, saame kapseldamist kasutada ka C #, C ++, PHP-s. Omaduste eeliseks on see, et kasutajad saavad objektiga manipuleerida sisemise andme vaatevinklist, kasutades ühte nime kandvat üksust, mille andmed ja funktsioonid on selles määratletud.

Soovitatavad artiklid

See on juhend kapseldusest C-s. Siin käsitleme C-s kapseldumise sissejuhatust ja vajadust koos eelise ja näidetega. Lisateavet leiate ka meie muudest soovitatud artiklitest -

  1. Abstraktsioon vs kapseldamine
  2. Kapseldamine Pythonis
  3. Kapseldamine Java-s
  4. Kapseldamine PHP-s
  5. Kapseldamise toimimine JavaScriptis
  6. Kapseldamine JavaScripti

Kategooria: