![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
|
После того, как выработаны основные принципы построения архитектуры системы, остающаяся работа проста, но зачастую довольно скучна и утомительна. Следующий этап будет состоять в реализации трех или четырех семейств классов (таких, как очередь, множество и дерево) в соответствии с выбранной архитектурой, и в последующем их тестировании в нескольких приложениях [Вирфс-Брок считает, что необходимо тестировать среду разработки по крайней мере на трех приложениях, чтобы проверить правильность стратегических и тактических решений [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; Прочитано: 224 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!
