Сегодня я пришел к фундаментальному парадоксу стиля объектного программирования, конкретным типам или интерфейсам.Типы бетона или интерфейсы для типов возврата?
Каковы лучшие выборы для возвращаемого типа метода: конкретный тип или интерфейс?
В большинстве случаев я предпочитаю использовать конкретные типы в качестве возвращаемого типа для методов. потому что я считаю, что конкретный тип более гибкий для дальнейшего использования и предоставляет больше возможностей.
Темная сторона этого: сцепление. Ангелический: конкретный тип содержит интерфейс, с которого вы сначала вернетесь, и дополнительную функциональность.
Какое у вас правило большого пальца?
Есть ли какой-либо принцип программирования для этого?
БОНУС: Это пример того, что я имею в виду ReadOnlyCollection or IEnumerable for exposing member collections?
Спасибо за ваше мнение Dominik +1 – SDReyes
«MyCustomExtendedArrayList» более специфичен, чем 'List'. Что бы вы вернули? – BalusC
@BalusC: Зависит от его просто другой реализации List или предлагает некоторые пользовательские методы. Какой смысл было бы сделать, чтобы вернуть специализированный класс, если его можно использовать только при кастинге? – Dominik