Контекст задачи - создание модульного приложения, в котором в зависимости от значения внешнего параметра переключаются реализации одного из Интерфейсов (реализации которых и есть модули). Работаю со Spring Framework, в частности с Spring MVC. А реализации класса ICompany это есть спринговские бины.