Sobes.tech
Junior

Miks mõnedes liidestes meetodeid ei määratleta?

sobes.tech AI

Vastus AI-lt

Sellist tüüpi liidest nimetatakse marker-liidesteks (märgistusliidesteks). Need ei sisalda meetodeid ja neid kasutatakse klasside märgistamiseks, näidates kompilaatorile või JVM-le teatud omadusi või semantikat.

Näited:

  • java.io.Serializable: Märgib klassi serialiseeritavaks.
  • java.lang.Cloneable: Näitab, et objekt võib olla kloonitav.
  • java.util.RandomAccess: Optimeerib juhusliku juurdepääsu loendi elementidele.

Eelised:

  • Semantika: Näitavad selgelt arendaja kavatsust klassi suhtes.
  • Polümorfism: Võimaldavad kasutada polümorfseid väljakutseid, töötades sama marker-liidese rakendanud klasside grupiga.
  • Märgistus: Võivad olla kasutusel täiendava teabe edastamiseks tööriistadele (näiteks raamistikud, ORM).

Alternatiivid (sõltuvalt kontekstist):

  • Anotatsioonid (@interface).
  • Abstraktsed klassid.

Marker-liideseid eelistatakse, kui on vaja märkida klassi atribuut ilma käitumist lisamata.