다음 IFolderRepository
과 같은 메소드로 인터페이스 를 작성했다고 가정하십시오 .
IEnumerable<Folder> GetAllFolders();
Folder GetFolderWithId(int id);
void AddFolder(Folder newFolder);
void ModifyFolder(Folder folderToModify, Folder folderAfterModification);
void RemoveFolder(Folder folderToRemove);
그리고 나는 구현 DatabaseFolderRepository
하고 말할 수 있습니다 CacheFolderRepositoryDecorator
. 이제 '수백 줄 후에'SkyDrive 폴더 기능을 모두 추가하여 추가 할 준비가되었습니다 SkyDriveFolderRepository
. 불행하게도 동안 DatabaseFolderRepository
구현은 데이터베이스와 얘기 동기 방법을 사용, 스카이 드라이브 하나는 많이 사용 async
하고 await
. 이 경우 어떻게해야합니까? void 메소드를 표시하는 경우 비동기는 솔루션이 아닙니다 (예외 처리 필요). 반환하려면 인터페이스를 변경해야합니까 Task<T>
? 물론 위의 예제에서 작동하지만 인터페이스 구현 클래스는 2 개에 불과합니다. 아니면 대부분의 인터페이스에 Task
반환 유형이 있어야합니까 (규칙이 필요하지 않음)?
IFolder
인터페이스 가있는 경우Folder
모든 방법에서 구체적인 구현 ( )에 의존하는 이유는 무엇입니까?