Lecture01 (1133558), страница 4
Текст из файла (страница 4)
Поэтому гораздо лучшепоместить такой метод в другой модуль.Переиспользование.Этот принцип требует избегать повторений описаний одних и тех же знаний — в видеструктур данных, действий, алгоритмов, одного и того же кода — в разных частях системы.Вместо этого в хорошо спроектированной системе выделяется один источник, одно местофиксации для каждого элемента знаний и организуется его переиспользование во всехместах, где нужно использовать этот элемент знаний.
Такая организация позволяет принеобходимости (например, при исправлении ошибки или расширении имеющихсявозможностей) удобным образом модифицировать код и документы системы всоответствии с новым содержанием элементов знаний, поскольку каждый из нихзафиксирован ровно в одном месте.Примером может служить организация библиотечных классов java.util.TreeSet иjava.util.TreeMap. Первый класс реализует хранение множества элементов, на которыхопределен порядок, в виде сбалансированного дерева.
Второй класс реализует то же самоедля ассоциативного массива или словаря (map), если определен порядок его ключей. Всеалгоритмы работы со сбалансированным деревом в обоих случаях одинаковы, поэтомуимеет смысл реализовать их только один раз. Если посмотреть на код этих классов вбиблиотеке JDK от компании Sun, можно увидеть, что ее разработчики так и поступили —класс TreeSet реализован как соответствующий ассоциативный массив TreeMap, в которомключи представляют собой множество хранимых значений, а значение в любой паре (ключ,значение) равно null.Литература к Лекции 1[1] Документация по технологиям Java http://java.sun.com/docs/index.html[2] Т.
Кормен, Ч. Лейзерсон, Р. Ривест. Алгоритмы: построение и анализ. М.: МЦНМО, 1999.[3] И. Соммервилл. Инженерия программного обеспечения. М.: Вильямс, 2002.[4] Э. Хант, Д. Томас. Программист-прагматик. М.: Лори, 2004.[5] Е. А. Жоголев. Лекции по технологии программирования: Учебное пособие. М.:Издательский отдел факультета ВМиК МГУ, 2001.[6] Г. Буч. Объектно-ориентированный анализ и проектирование с примерами приложений наC++. Второе издание. М.: Бином, СПб.: Невский диалект, 2000.[7] F. Buschmann, R. Meunier, H.
Rohnert, P. Sommerlad, M. Stal. Pattern-Oriented SoftwareArchitecture. Wiley, 2002..