Наследование, но с двумя разными общими чертами? - PullRequest
0 голосов
/ 18 апреля 2020

В настоящее время я использую шаблон конвейера для разработки шлюза API, причем на разных этапах выполняются запросы к различным службам (http, sockets, amqp, ...).

У меня есть база класс, RequestStage, с некоторыми подклассами, HttpStage, SocketStage, AmqpStage. Эти классы расширяют RequestStage, потому что они могут иметь разные уникальные параметры для каждого из своих запросов.

Проблема заключается в том, что каждый этап / событие (подкласс) должен быть вызовом либо промежуточного API, либо нижестоящего API. Если это промежуточный программный интерфейс API, то должно быть условие отказа при коротком замыкании конвейера.

Как мне вписать это дополнительное поле / черту? Если класс stage / event вызывает запрос API промежуточного программного обеспечения, то он должен содержать дополнительное поле «failCondition», но как я могу реализовать это чисто, поскольку мое наследование основано на типе протокола запроса, а не на типе службы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...