Как использовать мемы для понимания объектно-ориентированного программирования
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), а общедоступные методы, доступные для других объектов, — это «геттеры» и «сеттеры». ”
Наследование
Так же, как генетика — если бы класс был собакой, а каждый объект, наследуемый от класса собаки, был бы щенком.
[
Объекты, созданные с помощью класса (JavaScript использует ключевое слово «extends»), наследуют информацию и методы суперкласса (или родительского) (вызов «super()» в «конструкторе» в объекте JavaScript).
Полиморфизм
Fred
и ghostFred
имеют метод, называемый getDressed()
. Когда вызывается getDressed()
, Fred
надевает свой аскот, а ghostFred
надевает костюм призрака.
В данном случае Fred — это класс, а GhostFred — объект, расширяющий класс Fred. ghostFred
наследует метод getDressed()
от Fred
, но когда создается экземпляр ghostFred
, программист передает в getDressed()
другие аргументы и/или изменяет код метода.
Язык ООП оценивает, какой getDressed()
использовать, основываясь на том, на какой объект ссылаются при его вызове (объект, на который будет ссылаться ключевое слово this
). При правильном использовании это может значительно сократить повторяющийся код.
Заключение
Если вы опытный разработчик, надеюсь, вы посмеялись над этим. Если вы новичок, я надеюсь, что это поможет вам более уверенно использовать язык ООП!
Если вам понравился этот общий обзор ООП в мемах или он оставил у вас больше вопросов, оставьте комментарий!
Также опубликовано [здесь].
Оригинал