Modul

Innen: Programozás Wiki
A lap korábbi változatát látod, amilyen Doi (vitalap | szerkesztései) 2010. szeptember 29., 07:00-kor történt szerkesztése után volt. (Új oldal, tartalma: „A programozásban modulnak nevezünk egy logikailag egységet képező programrészt. Általában egy fordítási egységet hívunk modulnak, de egy könyvtárra, …”)
(eltér) ← Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)
Ugrás a navigációhozUgrás a kereséshez

A programozásban modulnak nevezünk egy logikailag egységet képező programrészt. Általában egy fordítási egységet hívunk modulnak, de egy könyvtárra, kiegészítőre (plugin), vagy egy függvényre is hivatkozhatunk így. A moduláris programozás alapegységeként arra hivatott, hogy a program egy jól körülhatárolható részét lefedje.

Sok programozási nyelvben a modulok maguk is nyelvi egységként jelennek meg. Az Object Pascal unit-ja, a Visual Basic module-ja, vagy a Java package-e is egyfajta modul fogalmat definiál. A legtöbb nyelvben egy modul használatát külön kulcsszóval kell jelölni. Ez lehet uses, import, require, include, vagy valami hasonló. A kulcsszó (és a modul neve) jelzi, hogy a forrásfájl egy más modulra hivatkozik, ezért a felépülő programba a hivatkozott modult is be kell építeni. Így a másik modul szolgáltatási egy egyszerű utalás árán elérhetők.

A modulok több másik modulra is hivatkozhatnak. A hivatkozási összefüggések elég szerteágazók is lehetnek. Nagyobb programoknál néha érdemes a hivatkozási gráfot is felrajzolni. Ha túl kusza lesz, az azt jelenti, hogy a moduljaink túlságosan függnek egymástól, vagyis nem sikerült elég jól csoportosítani a feladatokat. Ilyenkor hasznos lehet átgondolni az egyes elemek helyét, olyan helyekre mozgatni a függvényeket, vagy osztályokat, ahová jobban tartoznak.

Példa[szerkesztés]

Egy modul kódja Object Pascal nyelven:

unit Prefixer;   
{a modul neve}

interface 
{a modul nyilvános része}

{más modulokból is elérhető függvények}
function BigPrefix( S: String ): String; 
function LittlePrefix( S: String ): String;

implementation 
{a megvalósítási rész}

function BigPrefix(S: String): String; 
begin Result := 'big '+S; end;

function LittlePrefix( S: String): String; 
begin Result := 'little '+S; end;

end.