Middle
Siniflər və mixinlər arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
- Sinif - obyektlərin quruluşunu və davranışını təsvir edən OOP-nin əsas vahididir. Bir-birindən irsi ala bilərlər və hiyerarşi yarada bilərlər. Siniflər adətən real və ya abstrakt varlıqları təmsil edir.
- Miksin - çoxlu irsi vasitəsilə digər siniflərə xüsusi davranış və ya funksionallıq əlavə etmək üçün nəzərdə tutulmuş sinif. Miksinlər müstəqil nümunələr yaratmaq üçün nəzərdə tutulmayıb və çox vaxt daxili vəziyyətə malik deyil. Onların əsas məqsədi "qarışdırıla bilən" funksionallıq təmin etməkdir.
| Xüsusiyyət | Sinif | Miksin |
|---|---|---|
| Təyinat | Varlıq və obyektlərin yaradılması | Digər siniflərə davranış əlavə etmək |
| Nümunə yaratmaq | Ümumiyyətlə mümkündür | Ümumiyyətlə arzuolunmaz və ya mümkün deyil |
| Vəziyyət | Tez-tez var (nümunə atributları) | Tez-tez yoxdur (yalnız metodlar) |
| İrsiyyət | İrsi ala və ya əsas ola bilər | Adətən digər siniflər tərəfindən irsi alınır |
| Nümunə | User, Product, DatabaseConnection |
SerializableMixin, DebugPrintMixin |
# Sinif nümunəsi
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
pass # Əsas metod
# Miksin nümunəsi
class WalkableMixin:
def walk(self):
print(f"{self.name} yürüyor.")
# Miksin istifadə edən sinif
class Dog(Animal, WalkableMixin):
def speak(self):
print("Hav!")
# Sinif nümunəsi yaratmaq
my_dog = Dog("Buddy")
my_dog.speak() # "Hav!" çıxarır
my_dog.walk() # "Buddy yürüyor." çıxarır
# Miksin nümunəsi yaratmaq adətən mənalı deyil
# mx = WalkableMixin() # 'name' atributu olmadan işləməz