получал бы !tagged всех реализаций и вместо ->locator->get()
опрашивал все реализации по ->getEmailType()
Да, так тоже можно. Или через фабрику, без разницы. Некоторые не любят теги из-за того, что надо создать много объектов вместо одного. Можно юзать прокси.