ترکیب در Rust با استفاده از Traits

چرا مهم است

در Rust، به جای وراثت از ترکیب استفاده می‌شود که به تو اجازه می‌دهد تا به جای تمرکز بر سلسله‌مراتب، بر قابلیت‌ها تمرکز کنی. این امر باعث می‌شود کدهایت انعطاف‌پذیرتر و قابل توسعه‌تر باشند.

قبل از خواندن، این‌ها را بدان۳ مفهوم
iterator

یک شیء که به شما اجازه می‌دهد تا به صورت ترتیبی از عناصر یک مجموعه عبور کنید.

بیشتر درباره این مفهوم

standard library

مجموعه‌ای از ماژول‌ها و توابع از پیش تعریف شده که در زبان برنامه‌نویسی برای تسهیل توسعه استفاده می‌شود.

بیشتر درباره این مفهوم

Traits

در Rust، Traits به شما اجازه می‌دهند تا قابلیت‌ها و رفتارهای مشترک را برای انواع مختلف تعریف کنید.

بیشتر درباره این مفهوم

در زبان برنامه‌نویسی Rust، ترکیب به جای وراثت مورد استفاده قرار می‌گیرد. این مدل به توسعه‌دهندگان اجازه می‌دهد تا به جای تمرکز بر روی سلسله‌مراتب کلاس‌ها، بر روی قابلیت‌ها تمرکز کنند. به عنوان مثال، تابع collect در Rust به شما اجازه می‌دهد تا مقادیر یک iterator را به یک مجموعه مانند Vec تبدیل کنید، بدون اینکه نیاز باشد نوع مجموعه به‌طور خاص مشخص شود. این کار با استفاده از trait‌ای به نام FromIterator انجام می‌شود که به هر نوعی اجازه می‌دهد تا از یک iterator ساخته شود.

در این مدل، هیچ‌کدام از طرفین نیاز ندارند تا از نوع دقیق طرف دیگر آگاه باشند. به عنوان مثال، یک iterator نیازی ندارد بداند که یک vector چگونه عناصر خود را ذخیره می‌کند و بالعکس. این به توسعه‌دهندگان اجازه می‌دهد تا به راحتی انواع جدیدی از iterator‌ها و مجموعه‌ها را بدون نیاز به تغییر در کدهای موجود اضافه کنند.

مزیت دیگر استفاده از Traits در Rust این است که می‌توان قابلیت‌ها را به صورت مستقل تعریف کرد. به عنوان مثال، در کتابخانه استاندارد Rust، دو trait مستقل به نام‌های Read و Write وجود دارند که به انواع مختلف اجازه می‌دهند تا عملیات خواندن و نوشتن را انجام دهند. این قابلیت‌ها به صورت مستقل از هم تعریف شده‌اند و یک نوع می‌تواند یکی از این قابلیت‌ها یا هر دو را پیاده‌سازی کند.

این رویکرد به توسعه‌دهندگان اجازه می‌دهد تا به جای تمرکز بر روی سلسله‌مراتب و وراثت، بر روی قابلیت‌ها و توانایی‌های واقعی انواع تمرکز کنند. این امر باعث می‌شود که کدها انعطاف‌پذیرتر و قابل توسعه‌تر باشند.

نکته کلیدی

در Rust، با استفاده از Traits می‌توانی قابلیت‌ها را به صورت مستقل تعریف کنی و انواع مختلف را به راحتی با یکدیگر ترکیب کنی. این رویکرد به تو اجازه می‌دهد تا به جای تمرکز بر روی سلسله‌مراتب، بر روی قابلیت‌های واقعی انواع تمرکز کنی.

خواندن مقاله اصلی (در زبانه‌ی جدید باز می‌شود)
برچسب‌ها (۳)