قراردادهای نامگذاری
قراردادهای نامگذاری زیر صرفاً توصیه شده و کاملاً اختیاری هستند. با خیال راحت از هر گونه قرارداد نامگذاری که ترجیح می دهید استفاده کنید. ممکن است دریابید که برخی از مثالها/اسناد اصولاً به دلیل سادگی/مختصر بودن از قراردادهای نامگذاری پیروی نمیکنند. این قرارداد ها به شدت برای پروژه های بزرگ با توسعه دهندگان متعدد توصیه می شود.
رویدادها باید با گذشته ساده نامگذاری شوند، زیرا رویدادها چیزهایی هستند که از دیدگاه Bloc قبلاً اتفاق افتاده اند.
BlocSubject
+ Noun (optional)
+ Verb (event)
رویدادهای لود اولیه باید این قرارداد را دنبال کنند: BlocSubject
+ Started
✅ خوب
sealed class CounterEvent {}final class CounterStarted extends CounterEvent {}final class CounterIncrementPressed extends CounterEvent {}final class CounterDecrementPressed extends CounterEvent {}final class CounterIncrementRetried extends CounterEvent {}
❌ بد
sealed class CounterEvent {}final class Initial extends CounterEvent {}final class CounterInitialized extends CounterEvent {}final class Increment extends CounterEvent {}final class DoIncrement extends CounterEvent {}final class IncrementCounter extends CounterEvent {}
وضعیتها باید اسم باشند، چرا که یک وضعیت فقط یک لحظهی خاص در زمان را نمایان میکند. دو روش رایج برای نمایش وضعیت وجود دارد: استفاده از زیرکلاسها (Subclasses) یا استفاده از یک کلاس تکی (Single class).
BlocSubject
+ Verb (action)
+ State
هنگام نمایش وضعیت به عنوان چندین زیرکلاس، State
باید یکی از موارد زیر را دارا باشد:
Initial
| Success
| Failure
| InProgress
BlocSubject
+ State
هنگام نمایش وضعیت به عنوان یک کلاس پایه تکی، باید از یک enum با نام BlocSubject
+ Status
برای نمایش وضعیتهای مختلف استفاده شود:
initial
| success
| failure
| loading
.
✅ خوب
sealed class CounterState {}final class CounterInitial extends CounterState {}final class CounterLoadInProgress extends CounterState {}final class CounterLoadSuccess extends CounterState {}final class CounterLoadFailure extends CounterState {}
enum CounterStatus { initial, loading, success, failure }final class CounterState { const CounterState({this.status = CounterStatus.initial}); final CounterStatus status;}
❌ بد
sealed class CounterState {}final class Initial extends CounterState {}final class Loading extends CounterState {}final class Success extends CounterState {}final class Succeeded extends CounterState {}final class Loaded extends CounterState {}final class Failure extends CounterState {}final class Failed extends CounterState {}