У меня есть два интерфейса:Доступ тот же объект в течение двух различных интерфейсов
interface IStudent
{
string Name { get; }
string EducationLevel { get; }
}
interface ITeacher
{
string Name { get; }
string Department { get; }
}
Как бы вы его дизайн в C#, так что объект может
- осуществлять только студент (и не имеют свойства учителя)
- применять только Учитель (и не имеют свойств страдента)
- реализовать оба интерфейса без избыточности свойств цели (имя)
Любые мысли?
Я могу сделать 2 класса, реализующих непосредственно два интерфейса. Но для человека, являющегося как учителем, так и учеником, у меня будет два разных объекта: я хочу только одного!
Не существует «избыточности общих свойств». Если свойства имеют одну и ту же подпись, они могут совместно использовать общую реализацию - по сути, это значение по умолчанию. (В C# вы также можете использовать явную реализацию интерфейса, чтобы дать двум свойствам разные реализации.) – millimoose