Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Совершенный код. Мастер-класс - Макконнелл С.

Макконнелл С. Совершенный код. Мастер-класс — М.: Русская редакция, 2005. — 896 c.
ISBN: 5-469-00822-3
Скачать (прямая ссылка): soversheniykodmasterklass2005.djvu
Предыдущая << 1 .. 64 65 66 67 68 69 < 70 > 71 72 73 74 75 76 .. 426 >> Следующая

управление сложностью. Управлять сложностью будет гораздо
легче, если при проектировании вы будете стремиться к
простоте.
¦ Есть два общих способа достижения простоты: минимизация
объема существенной сложности, с которой приходится иметь
дело в любой конкретный момент времени, и подавление
необязательного роста несущественной сложности.
¦ Проектирование - эвристический процесс. Слепое следование
какой-либо единственной методологии подавляет творческое
мышление и снижает качество ваших программ.
¦ Оптимальный процесс проектирования итеративен; чем больше
вариантов проектирования вы попробуете, тем удачнее будет
ваш окончательный проект.
¦ Одной из самых полезных концепций проектирования является
сокрытие информации. Вопрос "Что мне скрыть?" устраняет
много сложных проблем проектирования.
¦ Много полезной и интересной информации о проектировании
можно найти в других книгах. Описанные в этой главе идеи -
лишь вершина айсберга.
ГЛАВА 6
Классы
Содержание
_ ^~ - http ://сс2е.
сош/0685
¦ 6.1. Основы классов: абстрактные типы данных
¦ 6.2. Качественные интерфейсы классов
¦ 6.3. Вопросы проектирования и реализации
¦ 6.4. Разумные причины создания классов
¦ 6.5. Аспекты, специфические для языков
¦ 6.6. Следующий уровень: пакеты классов
Связанные темы
¦ Проектирование при конструировании: глава 5
¦ Архитектура ПО: раздел 3 5
¦ Высококачественные методы: глава 7
¦ Процесс программирования с псевдокодом: глава 9
¦ Рефакторинг: глава 24
На заре компьютерной эпохи программисты думали о
программировании в терминах операторов. В 1970-80-е о
программах стали думать в терминах методов. В XXI веке мы
рассматриваем программирование в терминах классов.
Класс - это набор данных и методов, имеющих общую,
целостную, хо- рошо определенную сферу ответственности. Данные
- необязательный компонент класса: класс может включать только
методы, предоставляющие целостный набор услуг. Одним из
главных условий эффективного программирования является
максимизация части программы, которую можно игнорировать при
работе над конкретными фрагментами кода. Классы - главное
средство достижения этой цели.
Эта глава содержит экстракт советов по созданию
высококачественных классов. Если вы только знакомитесь с
концепциями объектно-ориентированного программирования, она
может показаться слишком сложной. Если вы не прочитали главу
5, вернитесь к ней. Затем начните с раздела 6.1, который
поможет понять остальные разделы главы. Если вы уже знакомы с
основами классов, можете, просмотрев раздел 6.1, начать
серьезное чтение с раздела 6.2, в котором обсуждаются
122
ЧАСТЬ II Высококачественный код
интерфейсы классов. В разделе "Дополнительные ресурсы" в конце
главы вы найдете список вводных материалов по данной теме,
книг более высокого уровня и ресурсов, специфических для
языков программирования.
6.1. Основы классов: абстрактные типы данных
Абстрактный тип данных (АТД) - это набор, включающий данные и
выполняемые над ними операции. Операции описывают данные для
остальной части программы и позволяют их изменять. Слово
"данные" используется в выражении "абстрактный тип данных"
довольно условно. АТД может быть графическое окно со всеми
влияющими на него операциями, файл с файловыми операциями,
таблица страховых тарифов с соответствующими операциями и др.
Понимание концепции АТД необходимо для понимания объектно-
ориентированного программирования. Не имея ясного
представления об АТД, программисты создают классы, которые
только называются "классами", будучи на самом деле лишь
удобными контейнерами, содержащими наборы плохо согласующихся
друг с другом данных и методов. Понимание АТД облегчает
создание классов и их изменение с течением времени.
В книгах по программированию обсуждение АТД традиционно носит
математический характер. Довольно часто можно встретить
высказывания вроде: "АТД можно понимать как математическую
модель с определенным для нее набором операций". И создается
впечатление, что АТД подойдет разве что в качестве
снотворного.
Такие сухие объяснения АТД никуда не годятся. АТД удивительны
тем, что позволяют работать с сущностями реального мира, а не
с низкоуровневыми сущностями реализации. Благодаря этому
вместо вставки узла в связный список можно добавить ячейку в
электронную таблицу, новый тип окна в список типов окон или
очередной пассажирский автомобиль в программу, моделирующую
поток движения. Возможность работать в проблемной области, а
не в низкоуровневой области реализации программы очень удобна.
Используйте ее!
Пример необходимости АТД
Для начала приведем пример ситуации, в которой применение АТД
было бы полезным. После этого мы сможем углубиться в
подробности.
Допустим, вы пишете программу, управляющую выводом текста на
экран с использованием разнообразных гарнитур шрифтов, их
размеров и атрибутов (например, "полужирный" и "курсив"). За
работу со шрифтами отвечает конкретная часть программы. При
Предыдущая << 1 .. 64 65 66 67 68 69 < 70 > 71 72 73 74 75 76 .. 426 >> Следующая