Ваш ConnectorManager выглядит как фабрика для меня.Вы не должны вызывать конструктор Connector отдельно, а должны добавить функцию CreateConnector в классе ConnectorManager
. На этой фабрике вы будете вызывать конструктор Connector и передавать ему экземпляр ConnectorManager.
Соединитель будет хранить этот экземпляр и использовать его по мере необходимости.
public class ConnectorManager
{
public Connector CreateConnector()
{
return new Connector(comport1, comport2, retries, delay,this);
}
[...]
}
public class Connector
{
private ConnectorManager connectorManager;
internal Connector(int comport1, int comport2, int retries, int delay, ConnectorManager manager)
{
connectorManager = manager;
[...]
}
[...]
}
Обратите внимание, что конструктор Connector является внутренним, его не следует вызывать извне сборки.Вы НИКОГДА не должны создавать экземпляр Connector без использования ConnectorManager.CreateConnector ()
Если вы хорошо прочитали ваш конструктор ConnectorManager, шаблон синглтона не подойдет вам, если несколько ConnectorManager могут быть созданы для другой конфигурации компилятора, если этоправда?