У меня есть интерфейс, который реализован тридцатью конкретными классами. Конкретные реализации подразделяются на две группы, каждая из которых наследуется от общего абстрактного класса. Абстрактные классы определяют конструкторы для конкретных исполнителей, включая передачу объекта соединения с базой данных для каждой "стороны" двух сторон (среди прочих различий в базах данных).
Каждый из текущих методов интерфейса имеет несколько параметров, необходимых для конкретных классов, чтобы «выполнить работу», но не все используются в каждом реализаторе.
Когда сегодня утром я решил добавить новый метод в интерфейс, я понял, что соединение с базой данных потребуется только для одного из конкретных разработчиков, но остальным это не понадобится. Итак, это заставляет меня задуматься, я должен передать это в качестве параметра? Это необходимо для «выполнения работы», но только для одного из конкретных классов, и этот класс уже имеет соединение с базой данных. Если я передал соединение с базой данных в качестве параметра интерфейса, то остальные 29 классов не будут его использовать.
Какую линию можно нарисовать для приемлемого параметра интерфейса? К счастью, любое чтение / содержание по этой теме я тоже буду поглощать.