[Moscow.pm] Как бороться с циклическими зависимостями?

Roman V. Nikolaev rshadow на rambler.ru
Пт Мар 19 01:50:52 PDT 2010


Привет. Помогите осилить сабж. Есть несколько конкретных примеров и не
понятно как нормально сделать:

Например есть модуль My::Config который берет данные о подключения к БД
из txt файла, а так же через него получают некоторые конфигурационные
параметры из БД (с помощью DBI). Таким образом получается зависимость
что DBI нужен модуль конфига чтобы получить данные о подключении, а
конфигу нужен DBI чтобы далее работать с параметрами хранящимися в БД.

Или вот второй пример: модулю отсылки почты надо вести логи, и он
подключает соответствующий модуль. И наоборот, модулю работы с логами
надо, например в случае ошибки, отослать письмо.

Пока что вижу решение в разделение модуля конфига на два модуля. Один
который просто будет считывать файл конфига и отдавать DBI. Другой уже
со всем остальными конфигурационными параметрами и работой с DBI.

По второму примеру даже не знаю ... везде как-то размазывать
функциональность по разным модулям? Они ведь бывают довольно сложные и
не хотелось бы дублировать кучу кода.

P.S. Надеюсь понятно объяснил.

-- 

         Roman V. Nikolaev

mail:        rshadow на rambler.ru
icq:         198-364-657
jabber:      rshadow на jabber.org
site:        http://www.rshadow.ru

----------- следущая часть -----------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 262 bytes
Desc: OpenPGP digital signature
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20100319/af202697/attachment.bin>


Подробная информация о списке рассылки Moscow-pm