2014-01-20 5 views
0

У меня есть интерфейс с подписью, как это:интерфейс нужен другой подписи

Public Interface IOrphans 
     Function getOrphans() As List(Of Integer) 
End Interface 

Этот интерфейс реализуется тремя классами. Я хочу, чтобы ввести новый класс, но интерфейс должен иметь интерфейс следующим образом:

Public Interface IOrphans 
      Function getOrphans(ByVal strDataset As String) As List(Of Integer) 
End Interface 

ли я создать новый интерфейс под названием IDatasetOrphans или создать дополнительный параметр. Создание необязательного параметра, похоже, противоречит принципам SOLID.

+1

Вам нужно обрабатывать экземпляры 'IDatasetOrphans' как' IOrphans'? Если да, наследуйте интерфейс и предоставьте метод переопределения. Нужны ли классам, которые реализуют 'IOrphans'' 'IDatasetOrphans'? Если нет, перейдите к дополнительному интерфейсу. ИМО. –

ответ

0

Если вам нужна новая подпись метода во всех местах, где вы в настоящее время реализуете IOrphans, я бы поместил ее в ваш существующий интерфейс. Если нет, то я создам отдельный интерфейс IDatasetOrphans с вашей новой сигнатурой метода и реализую его там, где это необходимо.

Смежные вопросы