CodeBlanks Logo Icon CodeBlanks

Repository pattern

Repository pattern öğrenirsin.

Repository pattern

Repository pattern, veri erişimini tek bir yerden yönetir. Domain logic'i doğrudan fetch ya da veritabanı çağrısı yapmaz; bir Repository aracılığıyla veri ister.

Bu sayede veri kaynağı değişse (REST'ten GraphQL'e) yalnızca repository güncellenir; domain etkilenmez. Testlerde repository mock'lanır; gerçek API çağrısı yapılmaz.

Mock'lanabilirlik

Repository pattern'in en büyük kazanımı test kolaylığıdır. Gerçek API çağrısı yerine sahte (mock) bir repository verilir; test hızlı ve kararlı çalışır.

Mock repository aynı interface'i uygular; getUser çağrılınca sabit bir nesne döner. Bu sayede test ağ bağlantısı veya sunucu durumuna bağlı kalmaz.

Uygulama ApiUserRepository yaz

Bir ApiUserRepository sınıfı ya da nesnesi yaz. UserRepository interface'ini uygulamalı; getUser(id) metodu fetch çağrısı yapsın. export ile dışa aktar.

Başlangıç kodu

App.js
// ApiUserRepository'yi buraya tanımla

export default ApiUserRepository;

Örnek çözüm

App.js
// ApiUserRepository'yi buraya tanımla
const ApiUserRepository = {
  getUser: (id) => fetch(`/api/users/${id}`).then(r => r.json())
};

export default ApiUserRepository;

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Repository pattern neyi soyutlar?

  • Veri kaynağını
  • UI bileşenlerini
  • Stil hesabını
  • Navigation akışını Doğru cevap

Açıklama: Repository veri kaynağını soyutlar.

2 Mock repository dönüşü

Soru
const mockRepo = {
  getUser: async (id) => { return ____ }
};
Cevap
const mockRepo = {
  getUser: async (id) => { return { id, name: 'Ali' } }
};

Açıklama: Mock sabit bir nesne döner.

3 Repository parçalarını eşleştir

Kavram Anlamı
Repository Veri erişim soyutlaması
Interface Sözleşme
Mock Sahte veri
Domain İş mantığı

Uzman bölümündeki tüm dersler