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. 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.

Jegyzetek

Fordítás

Kategória:Programtervezési minták