#c_sharp
У меня есть два класса. В каждом их них нужен экземпляр другого класса.
SQLite sqllite = new SQLite(config);
FireBird fb = new FireBird(config, sqllite);
т.е. мне нужно
SQLite sqllite = new SQLite(config,fb);
Но я так сделать не могу т.к. он еще не создан.
Местами классы менять не могу -- тоже самое получится. Что одному нужен другой, который
еще не создан.
Вот у меня класс SQLite. В нем есть меод public UserData GetData()
Метод берет данные из SQLite и должен передать их в экземпляр fb.InsertData(ud).
В свою очередь fb должен сделать тоже самое. Он должен иметь возможность взять из
FireBird данные и отправить их в экземпляр sqllite.InsertData(ud)
Ответы
Ответ 1
То есть, вы пытаетесь связать два класса, отвечающих за разные базы данных, и скормить каждому экземпляр другого в конструкторе? Так не получится, какой-то из экземпляров вам придётся создавать первым. Можно, конечно, было бы «пробить силой», и заинжектить нужные экземпляры после создания. Но это всё равно плохой путь: эти классы в вашей архитектуре знают слишком много друг о друге. Я бы посоветовал делать так: Классы SQLite и FireBird друг о друге не знают. Логика получения данных из одного и передачи другому находится во внешнем по отношении к ним классе, который имеет ссылки на оба, и работает с ними.
Комментариев нет:
Отправить комментарий