Ascunderea punerea în aplicare

Programatorii de ajutor împărțit în clase de creatori (cei care creează noi tipuri de date) și programatori client Recunoscător pentru acest termen unui prieten Scott Meyers. (consumatori, folosind clasa tipuri de date în aplicațiile lor). Al doilea obiectiv - de a colecta cât mai multe clase posibil să se ocupe de dezvoltarea rapidă a programelor. Scopul creatorului de clasă - pentru a construi o clasă care se deschide numai ceea ce este necesar pentru programator client, și ascunderea restul. De ce? Clientul programatorul nu va fi capabil de a avea acces la părțile ascunse, și, prin urmare, clasele de creator își rezervă dreptul de a le schimba în mod arbitrar fără să se teamă că va răni pe cineva. parte „ascunse“ de obicei și cea mai mare parte „fragilă“ a obiectului, care poate distruge cu ușurință un programator neglijent sau neinformat client, astfel încât ascunde punerea în aplicare reduce numărul de erori în cadrul programelor.

În orice relație este important de a avea orice limite, să nu treacă prin oricare dintre participanți. Crearea unei biblioteci, să stabiliți o relație cu programator client. Este același programator, la fel ca tine, dar va folosi biblioteca pentru a crea o aplicație (și, probabil, un nivel mai ridicat al bibliotecii). Dacă acordați acces la toți membrii clasei pentru oricine, clientul programator poate face cu clasa ce vrea, și nu ai nici un fel să-l forțeze să „joace după reguli.“ Chiar dacă aveți nevoie de mai târziu pentru a restricționa accesul la anumiți membri ai clasă, fără mecanism de control al accesului este imposibil de a efectua. Toate structura clasei este deschisă tuturor participanților.

Astfel, primul motiv pentru restricționarea accesului este necesitatea de a proteja „fragile“ elemente de programator client - o parte din interior „bucătărie“, care nu sunt componente ale interfeței prin care utilizatorii rezolva problemele lor. De fapt, este util, iar utilizatorii - văd imediat ce este important pentru ei și ce pot ignora.

A doua cauză de restricționare a accesului - dorința de a permite dezvoltatorului de a modifica mecanismele interne de bibliotecă de clasă, fără griji cu privire la modul în care aceasta va afecta programator client. De exemplu, puteți implementa o anumită clasă „în grabă“, pentru a accelera dezvoltarea programului, și apoi copiați-l pentru a îmbunătăți performanța. Dacă sunt separate și interfața și punerea în aplicare protejate în mod corespunzător, acest lucru ar fi într-o clipă.

Java utilizează trei cuvinte cheie explicite ce caracterizează nivelul de acces: public, privat și protejate. Scopul și utilizarea lor sunt foarte simple. Aceste specificatori de acces determina cine are dreptul de a utiliza următoarea definiție pentru ei. Slovopublic înseamnă că definițiile ulterioare sunt disponibile tuturor. Dimpotrivă, cuvântul mijloacele private care oferă următoarele sunt disponibile numai pentru tipul de creator în cadrul metodelor sale. Termenul privat - «cetate zid“ între tine și programator de client. Dacă cineva încearcă să utilizeze un -Term privat, acesta va fi oprit de o eroare de compilare. Specificator protejate funcționează similar cu privat. cu o singură excepție - clasele derivate au acces la membrii marcate protejat. dar nu au acces la membri privat (moștenire vom lua în considerare în scurt timp).

În Java, au de asemenea acces la „implicit“ este utilizat în absența oricăruia dintre aceste turnee de calificare. Este, de asemenea, denumite uneori accesul în cadrul pachetului de acces (pachet), deoarece clasele pot folosi membrii prietenos altor clase de pachetul lor, dar în afara acelor membri ai aceleași prietenos dobândesc statutul privat.