Has-a

Adatbázis-tervezés, Objektumorientált programozás és tervezés során (lásd: objektumorientált programszerkezet), has-a (has_a vagy has a) (magyarul „van neki egy …”) egy kompozíció kapcsolat, ahol az egyik objektum (rész/alkotó/tag objektum) „hozzá tartozik” (része vagy tagja) egy másik objektumhoz (az összetett objektumhoz), és a birtoklás szabályainak megfelelően viselkedik. Magyarul egy objektumban előforduló has-a kapcsolat az lényegében annak egy mezője. Több has-a kapcsolat együttesen birtokló hierarchiát alkot.

Gyakran összehasonlításra kerül az is-a (is_a vagy is a) kapcsolattal, mely osztályozási hierarchiát alkot (altípusok).

A döntés, hogy egy objektum és az alárendeltje közötti kapcsolat is-a, vagy has-a legyen-e, nem mindig egyértelmű. Ez szükségessé tette bizonyos metalingvisztikai kifejezések megfogalmazását. A C++ STL-ben található container-ek jó példaként szolgálnak a has-a kapcsolatra.

Kapcsolatok összegezve:

  • Hiperonímia-hiponímia (őstípus-altípus) típusok (osztályok) közötti kapcsolatok, melyek osztályozási hierarchiát definiálnak,
    • az Öröklődési kapcsolatban: egy hiponímia (altípus, alosztály) egy un. „olyan, mint” kapcsolattal bír az ő hiperonímiájával (őstípus, ősosztály);
  • Holonímia-meronímia (egész - rész, egyed - alkotó, tartalmazó - tag) birtokló hierarchiát alkotnak típusok között, ahol
    • az aggregáció (azaz tulajdonos nélkül) kapcsolat:
      • a holonímia (egész) has-a kapcsolatban áll a meronímával (rész),
    • a kompozíció (azaz tulajdonossal) kapcsolat:
      • a meronímia (alkotó) „a része” kapcsolatot alkot a holonímiájával (egyed)
    • a behatároló[1] kapcsolat:
      • a meronímia (tag) a tagja kapcsolatban áll a holonímiájával (tartalmazó);
  • concept-object (típus - token) típusok (osztályok) és objektumok (példányok) közötti kapcsolat, ahol
    • egy token (objektum) a példánya kapcsolatban áll az ő típusával (osztály).
  1. See also Containment (computer programming).

Developed by StudentB