Ugrás a tartalomhoz

Nemvirtuális interfész

A Wikipédiából, a szabad enciklopédiából
A lap korábbi változatát látod, amilyen Szalakóta (vitalap | szerkesztései) 2017. szeptember 9., 18:49-kor történt szerkesztése után volt. Ez a változat jelentősen eltérhet az aktuális változattól. (Új oldal, tartalma: „A '''nemvirtuális interfész''' programtervezési minta (NVI) felügyeli, hogyan írják felül az osztályok valamelyik metódusát. Ezeket a metódusokat hívhat…”)
(eltér) ← Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)

A nemvirtuális interfész programtervezési minta (NVI) felügyeli, hogyan írják felül az osztályok valamelyik metódusát. Ezeket a metódusokat hívhatják a kliensek vagy a felülírható metódusok alap funkcionalitással.[1] A minta a sablon metódus közeli rokona. Ez a minta felhasználja annak az előnyét, hogy az ős nem absztrakt metódusai hívják az utód absztrakt metódusait. Az indirekciónak ez a szintje lehetővé teszi, hogy az absztrakt metódusokhoz képest előzetes (pre) és utólagos (post) metódusok alkalmazkodjanak a jövőbeli megjósolhatatlan változásokhoz. Kevés további munkával deployolható, és futásidőben sem túlzottan lassú. Több kereskedelmi keretrendszer is használja.

Előnyök és hátrányok

A nemvirtuális interfész alkalmazásához az osztály interfészét ketté kell bontani:

  • Kliens interfész: Publikus nem virtuális interfész.
  • Alosztály interfész: Nem publikus; virtuális és nem virtuális metódusok is lehetnek.

Ezzel a szerkezettel megoldható a törékeny alaposztály probléma. Az egyetlen ismert hátrány az, hogy a kód valamivel nagyobb lesz.[2]

Jegyzetek

  1. Non-Virtual Interface Design Pattern. BlackWasp, 2011. szeptember 3. [2011. szeptember 3-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. szeptember 12.) „The non-virtual interface pattern is a design pattern that controls how methods in a base class are overridden. Base classes include public, non-virtual members that may be called by clients and a set of overridable methods containing core functionality.”
  2. Non-Virtual Interface (NVI) idiom and the design intent. C++ truths, 2007. április 11. [2007. április 11-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. szeptember 12.)

Fordítás

Ez a szócikk részben vagy egészben a Non-virtual interface pattern című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.