24 Haziran 2019 Pazartesi

Ekran ve Concurrency

Giriş
Veritabanı kullanmayan bir çok projede alan bilgisi (domain model) bellekteki nesnelerde saklanır. Bu nesneler karşıdaki sistem tarafından güncellenir. Güncellenen nesneler ile onu gösteren ekran nesneleri arasında bağlantıyı kurmak için izlediğim yöntemler şöyle.

Ekranı Güncelleme Seçenekleri
1. Clone ile Asenkron Güncelleme
Domain nesnesi arka planda çalışan thread tarafından güncellenince, domain nesnesinin bir kopyası alınır (clone) ve ekran gönderilir.

2. Asenkron Güncelleme
Domain nesnesi arka planda çalışan thread tarafından güncellenince, ekrana bir notification gönderilir. Ekran domain nesnesini tekrar okur ve gösterir.

Domain Nesnesi Saklama Seçenekleri

1. Tek Instance İle Çalışma
Domain nesnesi için tek bir instane yaratılır. Bu nesneyi güncellemek veya okumak isteyen lock koyar ve işi bitince kaldırır.

2. Çift Instance İle Çalışma
Write Instance (My Data) ve Read Instance (Original Data) isimli iki kardeş kullanılır. Bu kullanımın amacı ekranda yapılan ancak daha işlenmemiş değişiklikleri farklı ekranlar arasında dolaştırabilmektir.

Read Instance (Original Data) her zaman karşıdan gelen bilgisi saklar. Böylece işleme başlamadan önceki verinin orijinal halini sorgulama imkanı olur. Read Instance güncellenince ekran da güncellenir.

Write Instance en başta karşıdan gelen bilgiyi saklar. Eğer üzerinde değişiklik yapmaya başlarsam benim değişiklik yaptığım bilgiyi saklar. Eğer benim yaptığım değişikik işlenirse Read Instance güncellenir.








Hiç yorum yok:

Yorum Gönder