Borland Pascal. Руководство пользователя

6cac1dc9

Программирование в "действительном залоге"


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

Примечание: Объектно-ориентированные языки однажды ме- тафорично назвали "языками актеров".

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

Было бы полезно представить функцию AnHourly.GetPayAmount как, например, дающую распоряжение объекту AnHourly "Вычислить размер вашей ежедневной платы". Центральной концепцией здесь яв- ляется объект. Этот объект обслуживают как список методов, так и список полей данных, содержащихся в объекте. И ни код, ни данные не являются здесь "директором".

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


Если мы хотим написать программу имитации кухни, то какой же имеется наилучший способ смоделировать различные приспособления, кроме объектов, с их характеристиками и линиями поведения, зако- дированными в поля данных и в методах? Фактически, это уже сдела- но: один из первых объектно-ориентированных языков (Симула-67) был создан как язык для написания таких имитаций.

Есть также причина того, что объектно-ориентированное прог- раммирование довольно крепко связано в традиционном смысле с ори- ентированной на построение графиков средой. Объекты должны быть моделями, и есть ли лучший способ смоделировать объект, чем нари- совать его изображение? Объекты в Borland Pascal должны имитиро- вать компоненты проблему, которую вы пытаетесь разрешить. Примите это во внимание, если в дальнейшем вы намерены эксплуатировать новые объектно-ориентированные расширения Borland Pascal.

| |


Содержание раздела