امروز می خواهیم با Codable کار کنیم. البته اگه سرچ کوچکی کنیم آموزشهای فراوانی پیدا میشه پس من هک میخوام بهتون یاد بدم برای افرادی که استفاده از Codable رو بلد هستند.
ما می دانیم که Codable یک پروتکل عالی برای کار با مدل ها و Json در لایه api است.
اما نمی توان بر روی خود Codable یک extension بزنید:
اگه لازم داریم یک متد خاص روی مدلها اعمال باشه باید برای هر مدل، یک extension بزنیم و متد را داخلش copy & pase کنیم که باعث کثیفی کد میشه .
برای هر Codable نیاز به یک extension مجزا دارد:
راه خوب اینه که متدهای مشترک extension بشن ولی چطور Codable رو مجبور کنیم؟؟
راه حل ساده اینه که ما از زبان سوییفت یاد بگیریم
همینطور که شاید بدونیم خود Codable یک پروتوکل است و ما میتوانیم پروتوکلی بسازیم که از یک پروتوکل دیگه تشکیل شده
خب پس ما هم با استفاده این روش پروتوکل جدیدی از Codable برای خودمون میسازیم تا کاستیها و محدودیتهای اصلی رو نداشته باشه :
حالا بجای استفاده از Codable دیفالت از CodablePro استفاده میکنیم:
و روی پروتکل جدید کدهای مشترک رو وارد میکنیم :
میبینیم که حالا User ما تابع جدید رو درون خودش داره بدون اینکه ما دوباره کد اضافی بزنیم
یک CodablePro واقعی و کامل که من در پروژه هام استفاده کنم :
سخن آخر:
ما یک CodablePro ساده را پیاده سازی کردیم.
امیدوارم با مفید باشه. همیشه سرچ کنید
اگر مقاله و پروژه را دوست داشتید ❤️ فراموش نکنید که می توانید مرا در ویرگول دنبال کنید.
ممنون از خواندن!