Главная > Программирование > РНР: настольная книга программиста
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

15.11. Манипуляция с именами в PHP

Имея дело с большими программами, легко запутаться в изобилии имен. Но несметного количества глобальных имен и функций можно просто избежать.

Благодаря маскировке деталей программист избавляется от необходимости непосредственно «общаться» с каждой переменной и функцией. Для маскировки деталей ипользуют инкапсуляцию — деление программы на классы, объединяющие данные и процедуры их обработки. Внутренние даные классы могут быть обработаны только предусмотренными для этого процедурами. Каждый такой класс имеет внутреннюю часть, называемую реализацией (или представлением), и внешнюю часть, называемую интерфейсом. Доступ к реализации возможен только через интерфейс. Таким образом, релазиация класса как бы заключена в капсулу и скрыта.

Используя инкапсуляцию функций и данных в классе, разработчик дает пользователю (под пользователями понимаются программисты, использующие этот класс) понять, что ему незачем знакомиться со всеми подробностями устройства класса, адостаточно только тех его частей, которые образуют открытый интерфейс.

О любой вещи можно составить логическое представление на разных уровнях понимания. Возьмите автомобиль: дети используют автомобиль как пассажиры, взрослые склонны рассматривать его как средство передвижения, автомобилестроители — как источник существования, а механики — тоже как источник существования, но только после поломки.

Уровень понимания автомобиля у всех этих категорий пользователей различен. Очевидно, что он зависит не от модели автомобиля, а от субъекта. Точно так же обстоит дело и с классами. Разработчик класса обязан знать его во всех подробностях, но пользователям класса достаточно понимания только тех аспектов, которые относятся непосредственно к управлению им. Если же вы являетесь потребителем класса, то для вас имеютзначение не детали, ате его свойства, которые помогут вам в решении собственных задач. Например, конструкторы автомобилей предусматривают тормоза, поскольку знают, что иногда приходится останавливаться. Однако решать, когда жать на тормоз, приходится не им, а водителю.

Такое разделение полномочий, являющееся стороной объектно-ориентированной философии, позволяет существенно сократить сложность проекта в целом.

<< Предыдущий параграф Следующий параграф >>
Оглавление