У меня лично нет объектов, реализующих интерфейсы. Для класса Task
у меня не было бы ITask
, у которого были только те же свойства, что и на нем.Должны ли объекты реализовывать интерфейсы?
Я видел это несколько раз, поэтому мне интересно, откуда этот совет, и какие выгоды вы получите от него.
Если вы используете ORM, аргумент, который говорит «Я могу изменить доступ к данным», не имеет значения, так зачем же это делать?
UPDATE:
Хороший момент был сделан в комментариях о INotifyPropertyChanged
. Это была не моя точка зрения, хотя - я говорю о том, что-то вроде этого:
public interface ITask
{
int Id { get; set; }
string Description { get; set; }
}
public class Task : ITask
{
public int Id { get; set; }
public string Description { get; set; }
}
Одно слово: INotifyPropertyChanged – slugster
Для этого необходимы некоторые другие теги. – bmargulies
@bmargulies Пожалуйста, не стесняйтесь переписывать, если хотите. Я не хотел, чтобы это было специфичным для языка, а «лучшие практики» больше не рекомендуется в качестве тега, поэтому не было уверенности в том, что еще нужно использовать. –