Увод у капсулу у Ц

Било је случајева да због пословних захтева морамо написати сложени код. Овај код неће бити једноставан за употребу и изгледа тешко разумљив. Да би програм изгледао лакше за читање, можемо сложени исјечак кода умотати у капсулу и сакрити га. Ово ће такође послужити као додатни слој заштите од било каквих злонамјерних убризгавања у код. Затим можемо користити овај део кода позивањем његове инстанце у главном програму, а не писањем читаве гомиле сложених линија. Ова се функција назива енкапсулацијом. То је једно од главних обиљежја објектно оријентисаних језика. Међутим, није ограничен само на ООП језике. У Ц, капсулација је упркос одсуству приватних и јавних кључних речи. Инкапсулација се користи у разним другим програмским језицима као што су Ц #, Ц ++, ПХП, ЈАВА.

Рад инкапсулације на Ц

Да бисмо разумели рад енкапсулације, размотримо пример из стварног живота. Размислите о великој компанији која има сопствену производну јединицу књига и испоручује их купцима везујући се са трећим добављачима. Да би овај пословни модел функционисао биће укључена различита одељења попут одељења за набавке, одељења за производњу, одељења за продају, одељења за финансије. Одељење за набавку ће се бринути за све активности везане за набавку попут набавке мастила, папира, корица за папир, штампача итд. Сектор продаје ће радити на маркетингу, рекордној продаји. Одговорности одељења за финансије за вођење финансијске ревизије, израчунавање добити / губитка и објављивање извештаја на основу којих ће се доносити кључне стратешке одлуке. У случају да се продаја смањи, а то утиче на финансије пословања. Тада одељењу за финансије неће бити дозвољено да директно приступа подацима о продаји. Одељење за финансије мораће затражити од члана продајног тима да добије релевантне податке. Ово је енкапсулација. Све активности финансирања су обухваћене у једном ентитету који се зове „одељење за финансије“.

Овај концепт енкапсулације користи се на језику Ц за скривање и заштиту података. Може се имплементирати када главни позивни програм има објект, објект би требао бити у могућности пронаћи примјењиве функције и на исти начин наћи податке.

Предности инкапсулације у Ц

  1. Инкапсулацијом се крије имплементација програма и стога је лако читати и модификовати у будућности у складу са пословним захтевима.
  2. Омогућује нам распоређивање ажуриране верзије кода где год је то потребно, а да не захтева да се целокупни програм реструктуира.
  3. Она осигурава програм пружајући функционалност скривања података.
  4. Инкапсулација промовише модуларни начин програмирања чинећи код еластичним.

Зашто нам је потребна капсулација на Ц?

Потребна нам је енкапсулација на Ц да бисмо манипулирали модификаторима приступа у Ц. Модификатори приступа су изричито присутни у Ц ++ за нпр. Јавни, приватни, али нису експлицитно присутни у Ц. Иако можемо искористити ово својство у Ц спровођењем енкапсулације. Инкапсулација такође обезбеђује сигуран код који се може боље разумети на примеру наведеном у доњем одељку. Ово промовише прилагодљивост променљивим захтевима, пошто год код захтева промене може се изменити у засебној датотеци без икаквих промена у главном програму. Ово ће дати једноставан и без грешке код до одређене мере.

Пример инкапсулације у Ц

Подаци на језику Ц подразумевано су јавни. Иако се „Струцт“ варијабле могу прогласити приватним дефинирајући их одвојено од главне класе. То се може постићи ако имате засебно заглавље и изворне датотеке Ц. Датотеци заглавља следи екстензија „.х“, док за Ц датотеке следи екстензија „.Ц“. У примјеру у наставку: Постоје три датотеке

  1. п_вариабле.х
  2. маин_прог.ц
  3. Аццесс_пфиле.ц

п_вариабле.х: То је датотека заглавља која треба да буде укључена у друге „.ц“ датотеке. Ова датотека делује као веза између података разасутих по више датотека.

маин_прог.ц: То је главна имплементациона датотека. Када се ово изврши, онда се упућује позив функцијама функцијама које су дефинисане у другим Ц датотекама заједно са структурама.

Аццесс_пфиле.ц: То је датотека која садржи структуру. Будући да „струцт“ захтева доделу и де-доделу меморије, користе се неке функције из стандардне Ц библиотеке попут „маллоц ()“ и „аллоц ()“.

Датотека: п_вариабле.х

#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

Датотека: Аццесс_пфиле.ц

#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.
)

Датотека: маин_прог.ц

#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;
)

Излаз:

Закључак

Инкапсулација је водећи корак ка објектно оријентисаном програмирању. Овај чланак даје информације о енкапсулацији у Ц. Користећи аццессор и мутатор методе, модификаторе приступа можемо искористити и енкапсулацију у Ц #, Ц ++, ПХП. Предност својстава је у томе што корисници могу манипулирати објектом са унутрашње тачке података користећи једну именовану ставку која има податке и функционалност дефинисане у њој.

Препоручени чланци

Ово је водич за Инкапсулацију у Ц. Овде смо расправљали о увођењу и потреби енкапсулације у Ц заједно са Предношћу и примерима. Можете и да прођете кроз друге наше предложене чланке да бисте сазнали више -

  1. Апстракција вс енкапсулација
  2. Инкапсулација у Питхон-у
  3. Инкапсулација у Јави
  4. Инкапсулација у ПХП
  5. Рад Енцапсулације у ЈаваСцрипт-у
  6. Инкапсулација у ЈаваСцрипт-у

Категорија: