Diyelim ki IFolderRepositorybö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 DatabaseFolderRepositoryve diyelim CacheFolderRepositoryDecorator. Şimdi 'yüzlerce satır sonra' SkyDrive klasörlerini işlevsellik eklemek istiyorum, böylece eklemeye hazırım SkyDriveFolderRepository. Maalesef ise DatabaseFolderRepositoryuygulama veritabanı ile konuşmak için senkron yöntemler kullanılır, SkyDrive biri bir çok kullanır asyncve 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 Taskdönüş tipleri olmalı (size karşı kuralına ihtiyacınız olmayacak)?
IFolderarayüzünüz varsa, nedenFoldertüm yöntemlerinizde somut uygulamaya ( ) güveniyorsunuz ?