Diyelim ki IFolderRepository
böyle yöntemlerle arayüz oluşturdum :
IEnumerable<Folder> GetAllFolders();
Folder GetFolderWithId(int id);
void AddFolder(Folder newFolder);
void ModifyFolder(Folder folderToModify, Folder folderAfterModification);
void RemoveFolder(Folder folderToRemove);
ve uyguladım DatabaseFolderRepository
ve diyelim CacheFolderRepositoryDecorator
. Şimdi 'yüzlerce satır sonra' SkyDrive klasörlerini işlevsellik eklemek istiyorum, böylece eklemeye hazırım SkyDriveFolderRepository
. Maalesef ise DatabaseFolderRepository
uygulama veritabanı ile konuşmak için senkron yöntemler kullanılır, SkyDrive biri bir çok kullanır async
ve await
. Bu durumda ne yapmalı? Geçersiz yöntemlerin zaman uyumsuz olarak işaretlenmesi durumunda bir çözüm değildir (özel durum işleme gerekir). Geri dönmek için arayüzü değiştirmeli miyim Task<T>
? Elbette yukarıdaki örnekte işe yarayacaktır, ancak bunlar sadece 2 arayüz uygulama sınıfıdır. Ya da arayüzlerimin çoğunun Task
dönüş tipleri olmalı (size karşı kuralına ihtiyacınız olmayacak)?
IFolder
arayüzünüz varsa, nedenFolder
tüm yöntemlerinizde somut uygulamaya ( ) güveniyorsunuz ?