TDD — извлечь интерфейс или сделать методы виртуальнымиC#

Место общения программистов C#
Ответить
Anonymous
 TDD — извлечь интерфейс или сделать методы виртуальными

Сообщение Anonymous »

Всякий раз, когда я хочу заглушить метод в тривиальном классе, я чаще всего извлекаю интерфейс.
Теперь, если конструктор этого класса является общедоступным, не слишком сложным и не зависит от сложных типов, он будет иметь тот же эффект, если просто сделать рассматриваемый метод виртуальным и наследовать.
Является ли это предпочтительнее, чем извлечение интерфейса? Если да, то почему?

Изменить:

Код: Выделить всё

class Parser
{
public IDictionary DoLengthyParseTask(Stream s)
{
// is slow even with using memory stream
}
}
Есть два способа: либо извлечь интерфейс, либо сделать метод виртуальным. На самом деле я предпочитаю интерфейсы, но это может привести к взрывному росту числа кортежей IParser Parser...

Подробнее здесь: https://stackoverflow.com/questions/142 ... ds-virtual
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»