Главная » Java, Структуры данных и алгоритмы » Важная модель проектирования — adapter

0

Методы класса DequeStack, показанного на фрагменте кода 4.15, демонстрируют рассмотренную в п. 2.6.1 важную модель проектирования — adapter. Эта модель использует модификации методов одного класса таким образом, чтобы они могли применяться при реализации методов другого класса. Существует несколько типичных ситуаций, при которых может понадобиться использование адаптера. Одна из них представлена в классе DequeStack, где необходимо конкретизировать общий класс и упростить его применение, изменив имена некоторых методов. В случае класса DequeStack адаптируется класс MyDeque, осуществляющий сложный интерфейс Deque, таким образом, чтобы он мог реализовывать более простой интерфейс Stack. Модель adapter может быть использована для конкретизации типов объектов, применяемых общим классом. Эта модель применима для описания класса IntegerArrayStack, адаптирующего класс ArrayStack (см. фрагменты кодов 4.4-т4.5) таким образом, чтобы стек содержал только объекты Integer. Далее класс IntegerArrayStack может применяться в таких методах, как метод reverse из фрагмента кода 4.6, что способствует сокращению количества вводимых исходных данных и уменьшает возможные сложности приведения типов, поскольку это действие будет выполняться внутри класса.

Пример приложения

Пусть п — некоторое количество ежедневных котировок акций, в этом случае интервалом курса акций за определенный день назовем максимальное количество дней до текущего, в течение которых курс акций бьиг меньше или равен курсу на текущий день (см. рис. 4.11). Формально это выражается следующим образом: предположим, что в первый день количество котировок акций равно 0, а р’ обозначает курс на день /.

Рис. 4.11. Ежедневный курс акций и интервал курса акций

Интервал 57 на день / равен максимальному целому числу к, причем к < i + 1, a pj < pi, где j = / – к + 1, /. Пусть ежедневный курс равен Ро>Ри –,Рп-\ – Рассмотрим задачу вычисления интервалов s\, sn -

Источник: Гудрич М.Т. Г93 Структуры данных и алгоритмы в Java / М.Т. Гудрич, Р. Тамассия; Пер. с англ. A.M. Чернухо. — Мн.: Новое знание, 2003. — 671 е.: ил.

По теме:

  • Комментарии