Sobes.tech
Junior

Niyə bəzi interfeyslərdə metodlar təyin edilmir?

sobes.tech Süni İntellekt

AI-dan cavab

Marker interfeyslər (işarə interfeyslər) metodlar təyin etmir. Onlar sinfi işarələmək üçün istifadə olunur və onun müəyyən bir xüsusiyyətə və ya imkanlara malik olduğunu göstərir.

Marker interfeyslərinə nümunələr:

  • java.io.Serializable: Ob'ektləri serializasiya edilə bilən sinfi işarələyir.
  • java.lang.Cloneable: Ob'ektləri klonlamağa imkan verən sinfi işarələyir ( clone() metodunu dəstəkləyir).
  • java.util.RandomAccess: Sürətli (sabit vaxt) təsadüfi girişə malik olan siyahıları işarələyir.

Marker interfeyslərinin istifadəsi aşağıdakıları təmin edir:

  • Sinifləri tanımaq: Ob'ektin növünü instanceof operatoru ilə yoxlamaq.
    // ob'ektin serializasiya edilə biləcəyini yoxlamaq
    if (object instanceof Serializable) {
        // serializasiya etmək
    }
    
  • Davranışı dəyişdirmək: API-lər, sinfin marker interfeysini tətbiq edib etməməsinə görə davranışlarını dəyişə bilər. Məsələn, əgər siyahı RandomAccess-ı tətbiq edibsə, onun üzərindəki əməliyyatlar optimallaşdırıla bilər.
  • Girişə məhdudiyyət qoymaq: Bəzi API-lər, onlara ötürülən obyektlərin müəyyən marker interfeysini tətbiq etməsini tələb edə bilər.
  • Əlavələr: Daha müasir yanaşmalarda, marker interfeyslərinin çox istifadə sahəsi əlavələr vasitəsilə həyata keçirilir. Ancaq marker interfeysləri hələ də Java-nın standart kitabxanasında və köhnə kodlarda istifadə olunur.