Объектно-ориентированное программирование

Objective-C, “родной” язык для программирования интерфейса API каркаса Cocoa, является объектно-ориентированным языком, и чтобы его использовать, программист должен понимать природу объектов и объектно-ориентированного программирования.

Мало смысла в изучении синтаксиса отправки сообщения Objective-C или создания экземпляра без четкого понимания того, что такое сообщение или экземпляр. Именно этому и посвящена данная глава.

Объекты

Объект в программировании основан на концепции объекта реального мира. Это независимая самодостаточная вещь. Такие объекты, в отличие от чисто инертных объектов реального мира, имеют определенные возможности. Объект в программировании, если можно так выразиться, больше напоминает часовой механизм, чем камень. Он не просто где-то находится, но еще и активно что-то делает. Возможно, лучше сравнивать объект в программировании с одушевленными объектами реального мира, в отличие от неодушевленных предметов, за исключением того, что в отличие от реальных одушевленных объектов объект программирования является предсказуемым: в частности, он делает то, что вы ему приказываете. В реальном мире вы можете приказать собаке сидеть, но при этом может произойти что угодно; в мире программирования вы говорите собаке сидеть, и она будет сидеть. (Вот почему так много программистов предпочитают иметь дело с программами и компьютерами, а не с реальным миром.)

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

окрашивающий дверь. Тем временем все другие объекты просто продолжают делать то, что они делают. Они ничего не знают и не должны знать ни об объекте, окрашивающем дверь, ни о том, как он работает. Объекты связаны с другими объектами только в той мере, в какой они взаимодействуют с ними. Эти взаимодействия имеют вид сообщений.


 

 

 

Добавить комментарий