Я создал следующие классы для обмена изображениями. Они реализуют интерфейс, но мне нужен способ переключения между ними с помощью взаимодействия с пользователем. Я сделал это следующим образом:
Как видите, служба 1 и служба 2 реализуют iSharingServices и наследуются от PolimorphSharing .
PolimorphSharing - это простой и абстрактный класс, который реализует методы, которые я хочу сделать общедоступными из Сервиса 1 и Сервиса 2. Эти методы затем будут переопределены в Сервисе 1 и Сервисе 2.
Поскольку мне нужен способ переключения службы во время выполнения, я создал класс шлюза, который наследуется от PolimorphSharing. Затем я могу назвать это следующим образом:
private var sharingService:PolimorphSharing = new SharingServicesGW('svc1').createService();
Все это работает безупречно, и теперь я могу без проблем переключаться между службами. Однако я чувствую, что в этом что-то не так, поэтому я хотел бы попросить вас, ребята, дать несколько советов о том, как лучше это реализовать.
Любые мнения здесь будут оценены. Я чувствую, что я вроде как реализую фабричный шаблон здесь трудным путем.
UPDATE:
Просто добавлю немного понимания к этому. По сути, идея заключается в том, чтобы мой клиент мог загружать изображения с помощью различных служб общего доступа, таких как imageshack, imgur и т. Д. Я хочу, чтобы мой клиент мог выбирать службу, в которой должно быть опубликовано изображение (следовательно, « переключение между ними с взаимодействием с пользователем », вопрос в теме.
Метод, который выполняет загрузку, это requestShareImage (), processResults () просто превращает все, что возвращается, в уникальный формат, поэтому мой клиент всегда может прочитать его одинаково. getObject () - мой метод доступа, и onIOError будет обрабатывать исключения с любым из общедоступных API
Спасибо всем заранее,