Как использовать мемы для понимания объектно-ориентированного программирования

Как использовать мемы для понимания объектно-ориентированного программирования

30 марта 2022 г.

Языки объектно-ориентированного программирования (ООП), такие как JavaScript и Python, организуют разработку программного обеспечения на основе данных, отформатированных в объектах, а не на функциях или логике.


Сначала я расскажу об основах: объектах, классах, экземплярах и методах. Затем я кратко объясню четыре основных столпа проектирования ООП: инкапсуляция, абстракция, наследование и полиморфизм.


Объекты


Объект представляет собой данные, отформатированные для представления объекта реального мира, который имеет состояние и поведение.


"Вот мое желаемое состояние. Сделайте его таким!" - Капитан Пикард


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


Классы


В разных языках программирования это делается по-разному, но, по сути, класс — это схема создания объекта.


"Эй, Дог, я слышал, тебе нравится объектно-ориентированное программирование, поэтому я вложил класс в твой класс, чтобы ты мог создавать объекты, пока создаешь объекты"


Пример


Каждый раз, когда создается объект, он создается.


Много Губок Бобов, сидящих за офисными столами, как метафора разума


Каждый показанный здесь deskSponge будет экземпляром объекта, а поскольку они созданы с использованием класса Spongebob, экземпляром Spongebob.


Методы


Методы — это функции внутри объекта.


Офисный работник нажимает кнопку, и большая кофемашина выплескивает кофе прямо ей в рот. Затем она лихорадочно печатает.


Другими словами, поведение нашего объекта.


Кофемашина выше будет иметь метод приготовления кофе, и кнопка будет вызывать его. У офисного работника был бы способ нажимать на кнопку, пить кофе и печатать с кофеином.


Инкапсуляция


Вам не нужно знать, как работает кофемашина, чтобы нажать на кнопку и получить кофе.


[ !["Вы, автоматические кофемашины, думаете, что вы такие классные, а? Но можете ли вы сделать это?" Капельная машина смотрит в замешательстве. Французская пресса двигает поршнем image/fetch/s--ZPtlAUGv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/eu32kds59xn5ga49urag.gif)[ ![Теперь два френч-пресса быстро двигают плунжеры, и автоматическая кофеварка выглядит в ужасе.] res.cloudinary.com/practicaldev/image/fetch/s--b-yUMgFi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/i7bq7hjzi2h5ubwfxt1m .gif)


Другими словами, поведение и состояние рассматриваемого объекта должны быть приватными и затрагиваться только приватными методами внутри объекта.


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


Абстракция


Единственная информация об объекте, доступная вне объекта, — это информация, абсолютно необходимая для использования другими объектами.


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


Это также называется [сокрытием информации] (https://en.wikipedia.org/wiki/Encapsulation_(computer_programming)#An_information-hiding_mechanism), а общедоступные методы, доступные для других объектов, — это «геттеры» и «сеттеры». ”


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


Так же, как генетика — если бы класс был собакой, а каждый объект, наследуемый от класса собаки, был бы щенком.


[ Мама-собака стоит перед своими щенками. Подпись гласит: «Я сделал дис. И дис. И дис. И дис. И дис. И дис». Z-cl1bktg3c01vy0as67wx39mdq)


Объекты, созданные с помощью класса (JavaScript использует ключевое слово «extends»), наследуют информацию и методы суперкласса (или родительского) (вызов «super()» в «конструкторе» в объекте JavaScript).


Полиморфизм


Fred и ghostFred имеют метод, называемый getDressed(). Когда вызывается getDressed(), Fred надевает свой аскот, а ghostFred надевает костюм призрака.


Фред из «Скуби-Ду» разоблачает злодея-призрака, чтобы раскрыть... также Фреда


В данном случае Fred — это класс, а GhostFred — объект, расширяющий класс Fred. ghostFred наследует метод getDressed() от Fred, но когда создается экземпляр ghostFred, программист передает в getDressed() другие аргументы и/или изменяет код метода.


Язык ООП оценивает, какой getDressed() использовать, основываясь на том, на какой объект ссылаются при его вызове (объект, на который будет ссылаться ключевое слово this). При правильном использовании это может значительно сократить повторяющийся код. Подпись: "Я: объясняю полиморфизм Друг: Значит, подкласс такой же, как и суперкласс? Я:" Пластилиновый пират говорит: "Ну да, но на самом деле нет"


Заключение


Если вы опытный разработчик, надеюсь, вы посмеялись над этим. Если вы новичок, я надеюсь, что это поможет вам более уверенно использовать язык ООП!


Если вам понравился этот общий обзор ООП в мемах или он оставил у вас больше вопросов, оставьте комментарий!


Также опубликовано [здесь].



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE