У меня есть фабричный объект c #, который создает объекты с помощью фабричных методов, используя список объектов в качестве источника.
Список объектов создается так:
public WidgetFactory()
{
widgetLibrary = new List<WidgetModel>();
//Add all widgets
widgetLibrary.Add(new ClientsWidget());
widgetLibrary.Add(new InstallationsWidget());
etc.
и различные части моего приложения обращаются к этому списку по-разному, чтобы получить нужный тип объекта.
Но теперь у меня есть требование, чтобы один из объектов в списке (т.е. виджет) использовал саму фабрику виджетов. Очевидно, что это вызывает круговую ссылку.
Как я могу изменить свой дизайн, чтобы удовлетворить эту потребность?