Úroveň přístupu - Access level

v počítačová věda a programování, úroveň přístupu označuje sadu oprávnění nebo omezení poskytovaných a datový typ. Snížení úrovně přístupu je efektivní metoda omezení poruchové režimy, ladění čas a celková složitost systému. Omezuje úpravy proměnných pouze na metody definované v rámci rozhraní třídy. Proto je začleněna do mnoha základních vzory návrhu softwaru. Obecně nelze daný objekt vytvořit, číst, aktualizovat nebo odstranit žádnou funkcí bez dostatečné úrovně přístupu.

Dvě nejběžnější úrovně přístupu jsou veřejnost a soukromé, které označují; oprávnění v celém rozsahu programu nebo povolení pouze v rámci odpovídající třídy. Třetí, chráněný, rozšiřuje oprávnění na všechny podtřídy odpovídající třídy. Modifikátory úrovní přístupu se v Javě běžně používají [1] stejně jako C #, který dále poskytuje vnitřní úroveň.[2] V C ++ je jediný rozdíl mezi a struktur a a třída je výchozí úroveň přístupu, což je soukromé pro třídy a veřejnost pro struktury.[3]

Pro ilustraci výhody: zvažte veřejnou proměnnou, ke které lze přistupovat z kterékoli části programu. Dojde-li k chybě, mohl by být viník v jakékoli části programu, včetně různých dílčích závislostí. Ve velké kódové základně to vede k tisícům potenciálních zdrojů. Případně zvažte soukromou proměnnou. Z důvodu omezení přístupu musí všechny úpravy jeho hodnoty probíhat prostřednictvím funkcí definovaných v rámci třídy. Proto je chyba strukturálně obsažena ve třídě. Pro každou třídu často existuje pouze jeden zdrojový soubor, což znamená, že ladění vyžaduje pouze vyhodnocení jednoho souboru. S dostatečným množstvím modularita a minimální úroveň přístupu, velké kódové základny se mohou vyhnout mnoha výzvám spojeným se složitostí.[4]

Příklad: Třída bankovního zůstatku

Citováno z Java Coffee Break Q&A [5]

public class bank_balance {public String vlastník; soukromý int zůstatek; public bank_balance (název řetězce, int dolary) {owner = name; pokud (dolary> = 0) zůstatek = dolary; else dolary = 0; } public int getBalance () {návratový zůstatek; } public void setBalance (int dollars) {if (dollars> = 0) balance = dollars; else dolary = 0; }}

Tady imperativní proměnná Zůstatek je definována jako a soukromé int. Tím je zajištěno, že ostatní třídy, metody a funkce nemohou omylem přepsat proměnnou rovnováhu. Místo toho musí přistupovat k rozhraní pro třídu stav účtu, jehož metody zajišťují, že zůstatek nemůže klesnout pod 0.

Reference

  1. ^ „Řízení přístupu k členům třídy (výukové programy Java ™> Výuka jazyka Java> Třídy a objekty)“. docs.oracle.com. Citováno 2016-11-22.
  2. ^ "Modifikátory přístupu (reference C #)". msdn.microsoft.com. Citováno 2016-11-22.
  3. ^ „Přátelství a dědictví - výukové programy pro C ++“. www.cplusplus.com. Citováno 2016-11-23.
  4. ^ „Proč potřebujeme soukromé proměnné?“. softwareengineering.stackexchange.com. Citováno 2016-11-22.
  5. ^ http://www.javacoffeebreak.com/faq/faq0002.html