Есть ли «Rake-like» шаблон дизайна? - PullRequest
0 голосов
/ 25 июня 2011

Если бы у вас была библиотека / фреймворк / класс, реализующий что-то вроде управления зависимостями Rake, похоже, это было бы полезно для программирования общего назначения, т. Е. Путем разбивки кода на задачи и зависимости.

Например, представьте себе приложение для управления библиотекой фотографий пользователей на flickr. Приложение может быть разбито на Rake-подобные задачи с взаимозависимостями. Вход в систему может быть одной задачей, синхронизация фотографий пользователей может быть другой задачей, которая зависела от задачи входа в систему, удаление фотографии может быть задачей, которая зависела от актуальности данных пользователя.

Это похоже на простую / (фундаментальную) концепцию, которая может уже существовать в виде шаблона проектирования или даже в виде библиотеки (в идеале в c или target-c), если только это не очень плохая идея ... (пожалуйста, прокомментируйте)?

Будет ли это заново изобретать колесо для реализации Rake в Objective-c (или по вашему выбору) для внутреннего использования в настольном приложении, а не в качестве утилиты сборки?

1 Ответ

1 голос
/ 25 июня 2011

Если вы говорите о фактическом управлении зависимостями , я бы не назвал это шаблоном проектирования.

Прочтите о том, как сделать топологическую сортировку направленного ациклического графа , управление зависимостями сводится к этому.

Я думаю, что такая библиотека существует весьма вероятно.

Редактировать

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

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

Если этот класс не сработает, я полагаю, что не составит труда реализовать его с нуля или с помощью перевода с другого языка (Python дляпример: мне кажется, что Twisted предоставляет вам такую ​​возможность).

Еще больше править

Я не думаю, что реализация зависимостиУправление в вашем приложении было бы еще одним случаем переосмысления колеса.Если вам это нужно, закодируйте его.То есть, если вы не можете найти общую работающую библиотеку с совместимой лицензией, которая соответствует вашим потребностям.В таком случае, обязательно используйте его.Это действительно так просто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...