Круговые зависимости в гибких библиотеках - PullRequest
0 голосов
/ 21 сентября 2009

У меня есть две библиотеки Flex, которые ссылаются друг на друга. Оба используют тип ссылки "External", и я загружаю их вручную с помощью класса Loader.

Я получаю сообщение об ошибке "A cycle was detected in the build path of project: foo".

Есть ли способ решить эту проблему? Может быть, параметр для компилятора или что-то.

Я не думаю, что должна быть проблема, поскольку при типе ссылки external исходный код не компилируется в библиотеку ...

1 Ответ

2 голосов
/ 22 сентября 2009

Звучит так, будто вам нужно переосмыслить свой код.

Может быть, вы можете устранить зависимость одним способом, используя интерфейсы?

Если бы вы могли дать обзор зависимостей, может быть, я или кто-то другой мог бы дать идеи о том, как изменить структуру.

Edit:

Как мило с вашей стороны дать мне минус ... Позвольте мне процитировать статью Википедии на тему:

[...] в цикле разработки программного обеспечения зависимости между большим программным обеспечением модули считаются анти-паттерн из-за их негативных эффектов .

[...]

Круговые зависимости могут вызывать много нежелательные эффекты в программах. Наиболее проблемные из программного обеспечения Точка зрения дизайна жесткая сцепление взаимозависимых модули, которые уменьшают или делает невозможно раздельное повторное использование одиночный модуль .

Круговые зависимости могут вызвать эффект домино, когда маленький местный изменение в одном модуле распространяется на другие модули и имеет нежелательные глобальные эффекты (ошибки программы, компиляция ошибки). Круговые зависимости могут также приводят к бесконечным рекурсиям или другие неожиданные сбои.

Круговые зависимости также могут вызывать утечки памяти, предотвращая определенные очень примитивный автоматический мусор коллекционеры (те, которые используют ссылку считая) от освобождения неиспользованного объекты.

[...]

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

(выделение добавлено)

Но опять же, может быть, вы умнее коллектива, который пишет в Википедии ...

...