ویرگول
ورودثبت نام
Seyed Morteza Kamali
Seyed Morteza Kamali
Seyed Morteza Kamali
Seyed Morteza Kamali
خواندن ۱ دقیقه·۷ سال پیش

اصل Single Responsibility

Single Responsibility Principle (SRP)

هر کلاس وظیفه انجام تنها و تنها یک کار را دارد هیچ کلاسی نباید دو یا چند عملیات انجام دهد.


کلاس بزرگی که چندین کار را انجام می دهد
کلاس بزرگی که چندین کار را انجام می دهد


هر کلاس وظیفه ای که به آن سپرده شده است را انجام می دهد
هر کلاس وظیفه ای که به آن سپرده شده است را انجام می دهد


مثال

کمپوننت های یونیتی همه وظیفه مربوط به خودشان را به عهده دارند.

به عنوان مثال کمپوننت Audio Source وظیفه پخش کردن صدا را دارد و وظیفه غیر مرتبط مثل عوض کردن Scene را ندارد!

کمپوننت Audio Source
کمپوننت Audio Source

پس همیشه سعی کنید وظایف کدها را از هم جدا کنید تا بتوانید جاهای دیگه هم از آنها استفاده کنید.

نمونه ای از کلاس بزرگ

همان طور که می بینید کلاس زیر خیلی بزرگ است:

https://gist.github.com/smkplus/b734e0db74c4f12b5703a87db0f517b1

کلاس بالا دارای چند وظیفه هست که می توان آن ها را جدا سازی کرد:

GameConstants


https://gist.github.com/smkplus/1cfff3c7f08b9ba17d8130765b42b7c2


UIComponent

https://gist.github.com/smkplus/ee419d48cf5e6848a41c732a3fd63829

AudioComponent

https://gist.github.com/smkplus/5c30286d7fbb5c05bc0d717586b35464

CombatComponent

https://gist.github.com/smkplus/9c9c61bbfb588e2094f91aaaebc206c2


solidunityیونیتیبرنامه نویسی
۹
۰
Seyed Morteza Kamali
Seyed Morteza Kamali
شاید از این پست‌ها خوشتان بیاید