Недавно я наткнулся на любопытный паттерн в каком-то коде. Мы знаем, что для всего есть свое время и место, особенно когда речь идет об ABC и интерфейсах, но мне это кажется лишним.
// This describes a person....
public interface IPerson
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int BasePay { get; set; }
public string Address { get; set; }
}
// And so does this, but it also uses the interface....
public abstract class Person : IPerson
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int BasePay { get; set; }
public string Address { get; set; }
}
// This uses both ?!
public class CoalMiner : Person, IPerson
{
public CoalMiner()
{
BasePay = 10000;
}
}
Кто-нибудь может подумать, в чем конкретное преимущество использования и ABC и интерфейс, определяющий одни и те же элементы?