2008-11-25 3 views
5

Мне нужен класс для реализации интерфейса, я не хочу менять исходный класс (что бы добавить нежелательные зависимости).Могу ли я использовать методы расширения для реализации интерфейса?

Я знаю, что я мог бы наследовать от класса и сделать его дочерним, реализовать эти методы, но затем я столкнулся с проблемой, как преобразовать родительский класс (который поступает из данных/ORM) в этот класс представления.

Если я реализую все необходимые интерфейсы, будет ли он считаться интерфейсом или нет?

ответ

12

Нет, он по-прежнему не будет учитывать реализацию интерфейса.

Методы расширения - это не более чем способ вызова статических методов другим способом. Они вообще не влияют на идентификацию объекта, наследование и т. Д.

+0

Есть ли фундаментальная причина, по которой они не могли? То есть могут ли методы расширения компилироваться в идентификатор объекта/интерфейса, а не просто синтаксический сахар для статических методов? – 2016-06-14 17:02:17