„Egységbe zárás” változatai közötti eltérés
[nem ellenőrzött változat] | [nem ellenőrzött változat] |
Tartalom törölve Tartalom hozzáadva
Vépi (vitalap | szerkesztései) aNincs szerkesztési összefoglaló |
Hibák javítása; hivatalosan a C és a ++ v. a # egybeíratik. Nem 2 pont, csak 1. |
||
1. sor:
Az [[objektumorientált programozás]]ban (OOP)
Nyilvánosan elérhető eljárásokat általában az osztályban biztosítanak az állapot absztrakt eléréséhez vagy módosításához. A gyakorlatban legtöbbször az úgynevezett getter és setter metódusokat biztosítanak az értékek közvetett eléréséhez, bár ez nem sérti meg az egységbe zárást, gyakran mégis potenciálisan gyenge [[Objektumorientált programozás|objektumorientált programozási]] (OOP) tervezési gyakorlatnak tekintik.<ref>{{Cite web |url=https://web.archive.org/web/20200729073721/https://www.infoworld.com/article/2073723/why-getter-and-setter-methods-are-evil.html |title=Why Getter and Setter methods are evil |author=Holub |first=Allen |publisher=JavaWorld |date=September 5, 2003 |work=Info World |accessdate=January 17, 2021}}</ref> ([[antiminta]]).
23. sor:
A definíció szerint, hogy az egységbe zárás "felhasználható az adattagok és metódusok elrejtésére", azaz az [[objektum]] belső állapota általában az objektumon kívül rejtve van. Általában csak az objektum saját eljárásai képesek közvetlenül vizsgálni vagy felülírni a mezőket. Az objektum belső felépítésének elrejtése megvédi annak integritását, megakadályozva a felhasználókat abban, hogy érvénytelen vagy inkonzistens állapotba állítsák az elem belső értékeit. Az egységbe zárás feltételezett előnye, hogy csökkentheti a rendszer komplexitását, és ezáltal növeli a robusztusságot, lehetővé téve a fejlesztő számára, hogy korlátozza a szoftverkomponensek közötti kölcsönös függőségeket.
Egyes nyelvek, mint a Smalltalk és a [[Ruby (programozási nyelv)|Ruby]] csak az objektum eljárásain keresztül engedik meg a hozzáférést, de a legtöbb más (pl. [[C
Szinte mindig van mód az ilyen védelem felülírására– általában a reflexión keresztül (Ruby, Java, C
=== Példák ===
==== Adatmezők hozzáférésének korlátozása ====
Az olyan nyelvek, mint a [[C
Az alábbiakban bemutatunk egy példát [[C Sharp|C
class Program
{
69. sor:
}
}
</syntaxhighlight>Az egységbe zárás nem objektum-orientált nyelveken is lehetséges
// Header file "api.h"
|