Книга: Технологии программирования
8.14.1. Игнорирование классов
8.14.1. Игнорирование классов
Процедурно-ориентированный и объектно-ориентированный подходы к программированию различаются по своей сути и обычно ведут к совершенно разным решениям одной задачи. Этот вывод верен как для стадии реализации, так и для стадии проектирования: вы концентрируете внимание или на предпринимаемых действиях, или на представляемых сущностях, но не на том и другом одновременно.
Тогда почему метод объектно-ориентированного проектирования предпочтительнее метода функциональной декомпозиции? Главная причина в том, что функциональная декомпозиция не дает достаточной абстракции данных. А отсюда уже следует, что проект будет менее податливым к изменениям; менее приспособленным для использования различных вспомогательных средств; менее пригодным для параллельного развития; менее пригодным для параллельного выполнения.
Дело в том, что функциональная декомпозиция вынуждает объявлять "важные" данные глобальными, поскольку если система структурирована как дерево функций, всякое данное, доступное двум функциям, должно быть глобальным по отношению к ним. Это приводит к тому, что "важные" данные "всплывают" к вершине дерева по мере того, как все большее число функций требует доступа к ним.
В точности так же происходит в случае иерархии классов с одним корнем, когда "важные" данные всплывают по направлению к базовому классу (рис. 8.16).
Рис. 8.16. Игнорирование классов и их наследования
- 8.14.2. Игнорирование наследования
- 9.7.4. Иерархии классов и абстрактные классы
- 8.8.5. Шаг 4. Задание интерфейсов классов
- У14.4 Наследование без классов
- 10.4.3. Игнорирование сигналов
- 10.8.3.1. Плохие родители: полное игнорирование потомков
- 3.6. Качество классов и объектов
- Соотношение классов и записей
- Лекция № 12. Связи классов сущностей
- 6. Лекция: Объявление классов
- Управление созданием базовых классов с помощью base
- 3.3. Природа классов