Sobes.tech
Junior

Flutter'da vakalar ne işe yarar?

sobes.tech yapay zeka

AI'dan gelen yanıt

Kullanım durumları (use cases), UI ve verilerden ayrı bir iş mantığı katmanını temsil eder. Bunlar, depolardan alınan verilerle gerçekleştirilen kullanıcı veya sistemin belirli eylemlerini tanımlar.

Kullanım durumlarının avantajları:

  • Temizlik ve modülerlik: İş kurallarını UI'den ayırmak, kodu daha anlaşılır ve bakımını kolaylaştırır.
  • Test edilebilirlik: Kullanım durumlarına gömülü iş mantığı, izole edilerek kolayca test edilebilir.
  • Yeniden kullanılabilirlik: Kullanım durumları, uygulamanın farklı bölümlerinde veya başka uygulamalarda kullanılabilir.
  • Okunabilirlik: Kullanım durumlarının isimleri genellikle kullanıcının veya sistemin niyetini yansıtarak kodun okunabilirliğini artırır.

Genellikle kullanım durumları:

  • Bir veya daha fazla depoya bağlıdır ve veri alır.
  • Bu veriler üzerinde işlemler yapar (örneğin, filtreleme, sıralama, dönüşüm).
  • UI'yi bilmez ve doğrudan etkileşime girmez.
  • Presenterlar veya durum sağlayıcılar tarafından kullanılır (örneğin, BLoC, Riverpod).

Bir kullanım durumu yapısına örnek:

// Gelecekteki değerleri döndüren kullanım durumları için soyut temel sınıf.
abstract class FutureUseCase<T, P> {
  Future<T> call(P params);
}

// Kullanıcı listesini almak için somut kullanım durumu.
class GetUsersUseCase extends FutureUseCase<List<User>, NoParams> {
  final UserRepository userRepository;

  GetUsersUseCase(this.userRepository);

  @override
  Future<List<User>> call(NoParams params) async {
    return await userRepository.getUsers();
  }
}

// Giriş verisi gerektirmeyen kullanım durumları için parametresiz sınıf.
class NoParams {}