Введение в объектно-ориентированный дизайн с Java - стр. 10
В 1960-х, время обработки компьютера было дорогостоящим.
Поэтому было важно максимизировать производительность обработки.
Это достигалось за счет наличия глобальных данных, так как они все располагались в одном месте в памяти компьютера для программы.
С глобально доступными переменными все подпрограммы могли получить к ним доступ для выполнения необходимых вычислений.
Однако при этом возникали некоторые проблемы.
С глобальными данными возможно, что изменения в данных могут иметь побочные эффекты для программы.
Иногда подпрограммы запускались с теми данными, которые были не такими, как ожидалось.
Необходимость лучшего управления данными привела к изменениям в императивном программировании и появлению таких языков, как Algol 68 и Pascal в 1970-х годах.
Была введена идея локальных переменных.
Подпрограммы назывались процедурами, которые могут содержать вложенные процедуры.
И каждая процедура могла иметь свои собственные переменные.
Алгол 68 и Паскаль поддерживают понятие абстрактного типа данных, который является типом данных, который определен программистом и не встроен в язык.
Абстрактный тип данных представляет собой, по существу, сгруппированную связанную информацию, которая обозначается типом.
Это был способ организации данных.
Разработчики могли писать свое программное обеспечение с использованием этих типов аналогично встроенным типам языков.
Имея переменные в разных областях видимости, можно было разделить данные на разные процедуры.
Таким образом, процедура могла быть единственной, которая могла модифицировать эту часть данных, позволяя помещать данные в локальную область действия и не беспокоится о том, что они могли изменяться другой процедурой.
По мере того, как время обработки данных компьютерами становилось дешевле, а человеческий труд становился дороже, основным фактором в разработке программного обеспечения стал человеческий фактор.
И задачи становились все более сложными.
Это означало, что программное обеспечение становилось настолько большим, что, имея только один файл для всей программы, программу становилось трудно поддерживать.
Появились новые языки, такие как C и Modula-2, которые предоставили средства для организации программ и позволяли разработчикам легко создавать несколько уникальных копий своих абстрактных типов данных.
Теперь программы могли быть организованы в отдельные файлы.
В C каждый файл содержал все связанные с ним данные и функции, которые обрабатывали эти данные, и объявлял, к чему можно получить доступ с помощью отдельного файла, называемого файлом заголовка.