Можно ли отделить интерфейс от реализации, когда клиентская сборка не имеет представления о фактической реализации и работает только на интерфейсах. Если мы перенесем создание объекта в другой компонент, он все равно создаст зависимость от фактических типов реализации.
Я могу думать об этом, используя отражение, когда слой отвечает за обслуживание объектов, которые преобразуются в интерфейсы. Фактическое создание типов осуществляется путем отражения и сохраняется в словаре, где ключом является интерфейс и значение объекта реализации. Таким образом, клиентский код не имеет представления о типе реализации.
Есть ли шаблон дизайна, чтобы сделать это без отражения?
Заранее спасибо за ответы