2015-08-06 3 views
-2

Если вы думаете о правилах дизайна интерфейса Является ли это определение интерфейса действительным?Действительно ли это определение интерфейса?

 public interface IS3FileWriter 
     {  
      IEnumerable<Amazon.S3Object> ListObjects(string prefix, int maxkeys = 20);  
      void WriteFile(Stream ms, string filePath); 
      void DeleteFile(string filePath); 
      void CopyFile(string sourcePath, string destinationPath); 
     } 
+0

Да Это компилирует и работает, но этот дизайн интерфейса является действительным или нет? – kalkanbatuhan

ответ

1

Лично я не нравится ваш интерфейс
1.Follow методы называют convention.For методы они являются here. Итак, переименуйте свой метод ListObjects в GetListObjects например
Интерфейс 2.Your предполагает, что он будет записывать только файлы, но на самом деле он выполняет операции копирования/удаления/создания. Поэтому я бы переименовал его в нечто вроде IFileOperations
3.I не вижу, как ListObjects связан с файлами и поэтому находится внутри этого интерфейса.

Также по умолчанию параметр в интерфейсе выглядит подозрительно

Смежные вопросы