Verskil tussen inkapseling en abstraksie

Verskil tussen inkapseling en abstraksie
Verskil tussen inkapseling en abstraksie

Video: Verskil tussen inkapseling en abstraksie

Video: Verskil tussen inkapseling en abstraksie
Video: what is webportal | what is the difference between website and webportal. 2024, Desember
Anonim

Encapsulation vs Abstraksie

Encapsulation en Abstraksie is twee verskillende maar verwante konsepte wat in OOP (Object Oriented Programming)-tale voorkom. Encapsulation is die konsep om data en gedrag saam te kombineer as 'n enkele entiteit. Aan die ander kant is Abstraksie die proses om aan te bied hoe 'n entiteit optree\lyk in teenstelling met hoe dit geïmplementeer word.

Wat is Encapsulation?

Encapsulation is die proses om data en bewerkings wat daarop werk, in 'n enkele entiteit toe te vou. Dit beteken in wese dat sekere voorafbepaalde metodes gebruik moet word om toegang tot data te verkry. Met ander woorde, ingekapselde data is nie direk toeganklik nie. Dit verseker dat die integriteit van data behoue bly omdat die gebruiker nie in staat is om direk toegang tot die data te verkry en te wysig soos hy/sy wil nie. Die gebruikers sal die datawaardes slegs kry of stel deur die metodes wat publiek beskikbaar is vir die gebruikers. Hierdie metodes verskaf gewoonlik data validering sodat slegs die data in die toepaslike formaat toegelaat word om in die velde ingevoeg te word. Daarom is die voordele van Encapsulation drievoudig. Deur Encapsulation kan die programmeerder velde van 'n klas leesalleen maak of slegs skryf. Tweedens kan 'n klas totale beheer hê oor wat in sy velde gestoor word. Laastens hoef die gebruikers van 'n klas nie bekommerd te wees oor hoe sy data gestoor word nie. In Java kan die programmeerder alle instansieveranderlikes as privaat verklaar en kry en stel metodes (wat publiek is) verskaf om toegang tot die private velde te verkry en te wysig.

Wat is Abstraksie?

Abstraction is die proses om die aanbiedingbesonderhede van die implementeringbesonderhede te skei. Dit word gedoen sodat die ontwikkelaar van die meer komplekse implementeringsbesonderhede onthef word. In plaas daarvan kan die programmeerder fokus op die aanbieding of die gedragsbesonderhede van die entiteit. In eenvoudige terme fokus abstraksie op hoe 'n sekere entiteit gebruik kan word eerder as hoe dit geïmplementeer word. Abstraksie verberg in wese die implementeringsbesonderhede, sodat selfs al verander die implementeringsmetodologie met verloop van tyd, sal programmeerder nie hoef te bekommer hoe dit sy program sal beïnvloed nie. 'n Stelsel kan in verskeie lae of vlakke geabstraheer word. Byvoorbeeld, laevlak-abstraksielae sal hardeware-besonderhede openbaar, terwyl hoëvlak-abstraksie slegs die besigheidslogika van die entiteit sal openbaar. Die term abstraksie kan gebruik word om na beide 'n entiteit en 'n proses te verwys en dit lei tot 'n mate van verwarring. As 'n proses beteken abstraksie die onttrekking van noodsaaklike besonderhede terwyl die onessensiële besonderhede van 'n item of 'n groep items geïgnoreer word, terwyl abstraksie as 'n entiteit 'n model of 'n siening van 'n entiteit met slegs die noodsaaklike besonderhede beteken. In Java kan die programmeerder die sleutelwoord abstrak gebruik om 'n klas as 'n abstrakte entiteit te verklaar, wat die noodsaaklike definiërende kenmerke van 'n werklike wêreldentiteit verteenwoordig.

Wat is die verskil tussen Encapsulation en Abstraksie?

Selfs al is enkapsulasie en abstraksie hoogs verwante konsepte wat in objekgeoriënteerde programmeertale gevind word, het hulle sleutelverskille. Abstraksie is 'n tegniek wat ons help om te identifiseer wat sigbaar moet wees en wat verborge moet wees. Inkapseling is die tegnieke om die inligting so te verpak dat dit sigbaar maak wat sigbaar moet wees en versteek wat weggesteek moet word. Met ander woorde, Encapsulation kan geïdentifiseer word as een stap verder as abstraksie. Terwyl abstraksie 'n werklike wêreldobjek tot sy essensiële definiërende kenmerke reduseer, brei inkapseling hierdie idee uit deur hierdie funksionaliteit van daardie entiteit te modelleer en te koppel.

Aanbeveel: