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

На самом деле, я решил разработать шаблоны проектирования — я почти уверен, что каждый студент CS или каждый разработчик слышал что-то. о них. Но перед этим всем будет полезно вспомнить основы ООП.

Во-первых, нам нужно определить объект.

Объект в объектно-ориентированном программировании (ООП) — это абстрактный тип данных, созданный разработчиком.

Также нам нужно определить класс;

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

На самом деле класс — это план, который создает программист.

После этих основных определений мы можем вспомнить UML. Я объясню их, приведя несколько иллюстраций — созданных с помощью приложения Creately.

Как видите, вы можете проиллюстрировать класс’

  • стереотип
  • название
  • атрибуты
  • методы б

с помощью диаграмм UML.

После определения класса вы можете создавать объекты с помощью этого класса. Например, вы можете определить класс с именем Car. Затем вы можете создать экземпляр с именем Tesla этого класса.

Также существуют иерархии между классами. В предыдущем абзаце я привел пример Car. Предположим, что есть еще один класс с именем Автомобиль. В этом случае Автомобиль является родителем Автомобиля. Потому что могут быть и другие классы, такие как Грузовик, Мотоцикл и т. д.

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

В объектно-ориентированном программировании есть 4 важных понятия. Эти;

  • Абстракция
  • Инкапсуляция
  • Полиморфизм
  • Наследование

Абстракция

В объектно-ориентированной программе мы часто проецируем объекты реального мира на язык программирования. Конечно, делая это, мы делаем некоторые абстракции. Например, при проектировании класса автомобиля мы делаем некоторые предположения и создаем только номер, марку, цвет автомобиля для класса. Это называется абстракцией.

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

Инкапсуляция — это способность объекта скрывать части своего состояния и поведения от других объектов, предоставляя остальной части программы только ограниченный интерфейс.

Обычно мы делаем это, используя ключевые слова private, public, protected и интерфейсы и абстрактные классы/методы в современных языки программирования. Позвольте мне привести пример. У нас есть класс транспортного средства. А в классе Vehicle есть метод drive(). Вы можете реализовать метод drive() с различными потоками в соответствии с классом Car, Helicopter и т. д.

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

Наиболее важным преимуществом наследования является сокращение строки кода. Если вам нужны столь же похожие классы с другим, вы можете расширить этот класс и реализовать свою логику в новых классах.

Полиморфизм

Вы можете думать о полиморфизме как о способности объекта «притворяться» чем-то другим, обычно классом, который он расширяет, или интерфейсом, который он реализует.

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

Отношения между объектами

Существует 6 основных типов отношений между объектами. Эти

  • Зависимость
  • Ассоциация
  • Агрегация
  • Сочинение
  • Выполнение
  • Наследование

Зависимость. Зависимость — это связь между двумя или более объектами, при которой объект зависит от другого объекта или объектов для своей реализации. Класс A может повлиять на класс B, когда вы что-то меняете. по классу А.

Ассоциация. По сути, ассоциативное отношение между двумя или более объектами обозначает путь связи между ними, так что один объект может отправить сообщение другому. Объект А знает об объекте Б.

Агрегация. Агрегированный объект — это объект, который содержит другие объекты. Например, класс Airplane будет содержать объекты Engine, Wing, Tail, Crew. Объект А знает об объекте B и состоит из B. Класс A зависит от B.

Композиция: описывает класс, который ссылается на один или несколько объектов других классов в переменных экземпляра. Это позволяет моделировать связь has-a между объектами. Объект А знает об объекте Б, состоит из Б и управляет жизненным циклом Б.

Реализация:класс А определяет методы, объявленные в интерфейсе B. Объекты A можно рассматривать как B. Класс A зависит от B.

Наследование:класс А наследует интерфейс и реализацию класса B, но может расширять их. Объекты A можно рассматривать как B. Класс A зависит от B.

Я также хотел бы поделиться с вами некоторыми ресурсами, которые невероятно полезны для подготовки этих/этих статей: