Middle
Абстракттуу класстар контекстинде протоколдор менен класстар ортосунда кандай айырма бар?
sobes.tech AI
AIден жооп
Протоколдор талаптардын (ыкмалар, мүнөздөмөлөр) топтомун аныктайт, ал тургай түрлөрү (кластар, түзүмдөр, тизмелер) аларга жооп бериши керек. Алар даяр ишке ашырууну камсыз кылбайт. Класстар объекттерди түзүү үчүн үлгүлөр болуп саналат, алардын абалы (мүнөздөмөлөрү) жана жүрүм-туруму (ыкмалары) бар.
Swiftте ачык түрдө жок болгон абстракттуу класстар контекстинде:
- Абстракттуу классты класс аркылуу имитациялоо: Мурунку мурас алгыс класс түзүлөт. Кээ бир ыкмалар
fatalErrorдеп белгилениши мүмкүн же бош ишке ашырылышы мүмкүн, ал төмөнкү класстарда кайра жазылууну күтүп жатат. Абалы (мүнөздөмөлөрү) бардык мурас алгандар үчүн жалпы болушу мүмкүн. - Абстракттуу классты протокол аркылуу имитациялоо: Талап кылынган ыкмалар жана мүнөздөмөлөрдүн топтомун камтыган протокол аныкталат. Бул протоколду кабыл алган түрлөр өзүнүн бардык талаптарына өзүнүн ишке ашырылышын камсыз кылышы керек. Протокол өзү абалдуулукка ээ боло албайт, тек гана талаптарды белгилейт.
Негизги айырма: класстар негизги ишке ашырылышты жана абалдуулукты камсыз кыла алат, ал эми протоколдор гана интерфейсти сүрөттөйт, ишке ашырылышы жана абалдуулугу жок. Протокол аркылуу абстракцияны имитациялоо көбүрөөк ийкемдүү, анткени протоколду гана класстар эмес, структуралар жана тизмелер кабыл алса болот.