Должен ли возвращаемый тип объявления метода быть интерфейсом или конкретным классом?

В общем сценарии интерфейс или абстрактный класс часто являются подходящим решением, я прав?

Но в некоторых случаях кажется, что конкретный класс лучше. instance,

public string Replace(string old, string new)

Метод Replaceдля Stringвозвращает конкретный класс (это просто пример, хотя String не реализует никаких интерфейсов.)

Мой вопрос

  1. Когда я должен возвращать интерфейс и когда я должен возвращать конкретный класс?

  2. Является ли это частью программы для интерфейса, а не реализациейдля возврата интерфейса?

13
задан Kirin Yao 7 March 2012 в 09:03
поделиться