У меня есть три класса: InputSocket
, InternalSocket
, OutputSocket
. Все они наследуются от BaseSocket
с реализующим ISocket
интерфейсом, где у меня есть общий код для всех классов, и эта часть работает нормально, у меня проблема с частично разделяемым кодом.
InputSocket
и InternalSocket
делится парсингом части с OutputSocket
не имеет.
InputSocket
и OutputSocket
разделяет часть графического интерфейса с InternalSocket
не имеет.
Я ищу способ обмена общими частями кода между InputSocket
/ InternalSocket
и InputSocket
/ OutputSocket
. Код с состоит из методов и параметров.
Я уже пытался использовать несколько интерфейсов, но это не решило проблему, ну, это сделало его немного более управляемым. Когда я создаю IParsable
для парсинга и IExternal
для ввода / вывода общей части , тогда мне нужно создать IParsableSocket
для InternalSocket
IParsableExternalSocket
для InputSocket
и IExternalSocket
для OutputSocket
. Это не меняет смысла в том, что мне все еще нужно реализовывать код для каждого случая, что приводит к дублированию кода.
К сожалению, InputSocket
не может одновременно наследовать от OutputSocket
и InternalSocet
в c #.
Есть ли альтернатива для копирования / вставки кода или создания общего класса Socket с кучей логики if и нулей?