Я бы добавил массив, хранящий некоторый уникальный хэш всех родительских узлов в узле, и просто проверил его использование. Это можно оптимизировать, конечно.
Регулярные выражения для проверки
В зависимости от языка, поскольку у некоторых уже есть эти функции
Парсинг классов
Классы управления датой
обмен сообщениями классов
классы проверки
Мои два:
Код внедрения зависимости, таким образом, можно сделать это более тестируемым; и не полагаются на единственную реализацию одиночного элемента.
Модульная функциональность / функциональность Плагинов. Это - также прекрасная идея сделать это mockable, таким образом, Ваш клиентский код может быть протестирован, не вызывая полноценную сменную систему.
Существует несколько реализаций обоих, хотя иногда Вы не можете постараться не писать свое собственное.:(
В .NET:
Это - почти все, различные свободные библиотеки покрывают остальных.
большой вопрос
altho я начинаю заменять свой материал библиотекой предприятия - http://msdn.microsoft.com/en-us/library/cc467894.aspx - это, по крайней мере, улучшен на со временем и имеет путь больше глаз на него, чем мои реализации
Ответ зависит от Вашей цели - часто создание чего-то "допускающего повторное использование" прилагает больше усилий в начале, но конечно, выплачивает позже при многократном использовании - обеспеченный, конечно, что это является действительно допускающим повторное использование. Иногда эта способность переоценена... IMO...
Истинному ответу на это ответят, поскольку Вы пишете код - когда Вы говорите, Ну и дела, я просто записал что-то вроде этого на прошлой неделе.
Моя "панель инструментов" состоит из строки, математики, сети, базы данных, файла, входа и хоста других стандартных программ "библиотеки" (блоки, и т.д.), что я могу быстро включать как ссылки. Конечно, ключ к созданию этого живущая библиотека должен сохранить код этих объектов библиотеки действительно отдельным от приложения/кода разрабатываемый.
надежда это помогает...
Я легко думаю:
Я думаю, что это будет значительно отличаться в зависимости от языка и что должна предложить платформа, которую можно использовать. Большая часть необходимого повторно используемого кода была бы в современной платформе.
Это зависит от того, какие приложения Вы пишете. Таким образом, я не думаю, что существует реальная панель инструментов для любой проблемы. (Или это должна быть платформа).
У нас есть несколько приложений и перекрестная библиотека приложения. Это содержит много кода:
Каждый раз у нас есть что-то в приложении, которое возможно полезно для других приложений, оно перемещено в библиотеку.
Некоторые из них могут быть предоставлены VM или стандартными библиотеками, но Вам всегда будет нужно что-то дополнительное.
Лично я думаю, что хорошая платформа должна обеспечить эти инструменты, не Вас. Если не библиотека языка по умолчанию (Java является хорошим примером).
*отклоняют операционную систему (Unix, Солярис, Linux, MacOS, Cygwin), и это - "классический" набор утилит командной строки.
Способы объединиться, смешайте, испеките, уничтожьте и злоупотребите этими фундаментальными понятиями, неизмеримы.
Я уже некоторое время работаю над созданием набора повторно используемого кода для C #. Добавляя по одному компоненту за раз и, что более важно, используя фреймворк для реального приложения, я наконец сделал фреймворк простым, хорошо документированным и с различными «модулями», которые, как правило, используются снова и снова.
Проверьте это на CommonLibrary.NET на CodePlex
. Он немного проще и легче, чем SpringFramework и MS App Blocks.
Он включает такие вещи, как: 1. Разбор аргументов / опций 2. ActiveRecord / классы модели домена 3. Коллекции 4. Проверка и многое другое ..
A Money class that can handle currency, distribution, arithmetic operations, and formatting.
Как усталый и недовольный сопровождающий кода, я бы посмотрел на эти вопросы по-другому: какой код должен использоваться в проекте, чтобы избежать семи * разработчиков, создающих семь различных решений, которые требуют семи модификаций, когда что-то меняется (после обнаружения семи различных решений).
Думаю, большинство людей рассматривают повторное использование как инструмент повышения эффективности на начальном этапе разработки и забывают, что оно также является ключом к эффективному обслуживанию.
* Я думаю, что их всего семь, но я все еще тестирую.