Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
После того, как выработаны основные принципы построения архитектуры системы, остающаяся работа проста, но зачастую довольно скучна и утомительна. Следующий этап будет состоять в реализации трех или четырех семейств классов (таких, как очередь, множество и дерево) в соответствии с выбранной архитектурой, и в последующем их тестировании в нескольких приложениях [Вирфс-Брок считает, что необходимо тестировать среду разработки по крайней мере на трех приложениях, чтобы проверить правильность стратегических и тактических решений [15]].
Наиболее тяжелой частью данного этапа является создание подходящего интерфейса для каждого базового класса. И здесь, в процессе изолированной разработки отдельных классов (см. главу 6), нельзя забывать о задаче обеспечения глобального соответствия всех частей системы друг другу. В частности, для класса Set можно определить следующий протокол:
• setHashFunction | Устанавливает функцию хеширования для элементов множества. |
• clear | Очищает множество. |
• add | Добавляет элемент к множеству. |
• remove | Удаляет элемент из множества. |
• setUnion | Объединяет с другим множеством. |
• intersection | Находит пересечение с другим множеством. |
• difference | Удаляет элементы, которые содержатся в другом множестве. |
• extent | Возвращает количество элементов в множестве. |
• isEmpty | Возвращает 1, если множество пусто. |
• isMember | Возвращает 1, если данный элемент принадлежит множеству. |
• isSubset | Возвращает 1, если множество является подмножеством другого множества. |
• isProperSubset | Возвращает 1, если множество является собственным подмножеством другого множества. |
Подобным же образом можно определить протокол класса BinaryTree:
• clear | Уничтожает дерево и всех его потомков. |
• insert | Добавляет новый узел в корень дерева. |
• append | Добавляет к дереву потомка. |
• remove | Удаляет потомка из дерева. |
• share | Структурно делит данное дерево. |
• swapChild | Переставляет потомка с деревом. |
• child | Возвращает данного потомка. |
• leftChild | Возвращает левого потомка. |
• rightChild | Возвращает правого потомка. |
• parent | Возвращает родителя дерева. |
• setItem | Устанавливает элемент, ассоциированный с деревом. |
• hasChildren | Возвращает 1, если у дерева есть потомки. |
• isNull | Возвращает 1, если дерево нулевое. |
• isShared | Возвращает 1, если дерево структурно разделено. |
• isRoot | Возвращает 1, если дерево имеет корень. |
• itemAt | Возвращает элемент, ассоциированный с деревом. |
Для схожих операций мы используем схожие имена. При разработке интерфейса мы также проверяем полученное решение на соответствие критериям достаточности, полноты и примитивности (см. главу 3).
Дата публикования: 2014-11-04; Прочитано: 199 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!