Откуда объектно-ориентированное программирование получило свое название?

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

История процедурного программирования

Когда компьютеры были впервые изобретены, их нужно было явно программировать с помощью простых инструкций, а «программное обеспечение» представляло собой просто набор этих чрезвычайно простых команд, соединенных вместе, которые выполнялись бы последовательно.

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

Первоначально они требовали написания машинного кода — переместите этот «бит» из этой памяти в это место и выполните логическую операцию «и» с этим битом и т. Д. — но вскоре они были абстрагированы на более высокий уровень с помощью BASIC. ,

объектно-ориентированная программная архитектура

Я подозреваю, что большинство из вас сталкивалось с Бейсиком (универсальный символический код для начинающих) в школе. Это прекрасный пример процедурного языка программирования. Даже мой первый опыт программирования — использование BASIC на Amstrad CPC-64. Каждая строка начинается с номера строки, за которой следует простая инструкция на понятном человеку языке.

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

Объектно-ориентированный?

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

Например, в игре может быть объект игрока. Каждый объект игрока в игре представляет собой единственного, уникального реального игрока в нашей воображаемой многопользовательской онлайн-игре. Каждый объект игрока имеет псевдоним, текущее местоположение, инвентарь и скорость передвижения. Несмотря на то, что каждый игрок уникален, мы все же хотим, чтобы они имели одинаковую функциональность базового уровня. Каждый игрок может иметь переехать функция, которая заставляет игрока двигаться вперед на X квадратов. У каждого игрока может быть разная скорость перемещения, но когда мы скажем игроку двигаться одной командой, он будет знать, как реагировать в соответствии с его собственной интернет-механикой.

Почему это полезно? Возьмем более реальный пример — поскольку современные графические пользовательские интерфейсы были бы невозможны без объектов — все операционные системы предоставляют объект Window. Поэтому легко иметь новое «окно» с кнопками закрытия и полноэкранного режима, а также возможностью перемещаться без необходимости программировать это самостоятельно. Все, что вам нужно сделать, это сказать, создать окно.

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

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

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

То же самое верно для операционных систем — если пользователь внезапно решит изменить свой цвет окна на красный, вам не нужно это обнаруживать и делать окно тоже красным — все это встроено в объект окна.

наследование

Имея объекты, мы также можем расширять и наследовать их, чтобы создавать более полезные объекты с другим поведением или дополнительной функциональностью. Вы можете заново изобрести колесо — если хотите. В нашем примере игрока, возможно, мы хотим создать объект «супермен». Супермен по-прежнему является игроком, таким же, как и все остальные — он тоже хочет прозвище и хочет быть в списке на тех же досках лидеров игроков — но вместо стандартного действия перемещения, которое перемещает объект игрока на X вперед, мы хотим, чтобы он вместо этого летите — перемещая 10 квадратов за один раз поверх любых объектов на пути. Расширяя базовый объект игрока, мы можем «унаследовать» все эти полезные функции без необходимости переписывать их все заново, но мы все равно можем «переопределить» функцию перемещения с помощью нашего специального движения летающего супермена!

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

Одна последняя вещь: языки программирования на основе логики

Они представляют особый интерес для меня, поскольку они, как правило, наиболее полезны для всего, что связано с искусственным интеллектом. Языки программирования на основе логики, такие как Prolog, не используют команды и инструкции в традиционном смысле. Вместо этого они решат проблему с учетом набора правил и условий.

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

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

Изображение предоставлено: ShutterStock

Ссылка на основную публикацию
Adblock
detector