0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<ul><li><a>Определение</a></li>
1
<ul><li><a>Определение</a></li>
2
<li><a>Структура</a><ul><li><a>Объекты</a></li>
2
<li><a>Структура</a><ul><li><a>Объекты</a></li>
3
<li><a>Метод</a></li>
3
<li><a>Метод</a></li>
4
<li><a>Атрибуты</a></li>
4
<li><a>Атрибуты</a></li>
5
<li><a>Классы</a></li>
5
<li><a>Классы</a></li>
6
</ul></li>
6
</ul></li>
7
<li><a>Основные принципы</a><ul><li><a>Инкапсуляция</a></li>
7
<li><a>Основные принципы</a><ul><li><a>Инкапсуляция</a></li>
8
<li><a>Наследование</a></li>
8
<li><a>Наследование</a></li>
9
<li><a>Абстракция</a></li>
9
<li><a>Абстракция</a></li>
10
<li><a>Полиморфизм</a></li>
10
<li><a>Полиморфизм</a></li>
11
</ul></li>
11
</ul></li>
12
<li><a>Языки</a></li>
12
<li><a>Языки</a></li>
13
<li><a>Области применения</a></li>
13
<li><a>Области применения</a></li>
14
<li><a>Преимущества и недостатки</a></li>
14
<li><a>Преимущества и недостатки</a></li>
15
</ul><p>Парадигмы программирования - наборы правил и критериев, которые соблюдаются разработчиками при выдержке конкретной стилистики и модели написания исходного кода.</p>
15
</ul><p>Парадигмы программирования - наборы правил и критериев, которые соблюдаются разработчиками при выдержке конкретной стилистики и модели написания исходного кода.</p>
16
<p>Единая парадигма дает возможность избежать ошибок, упрощает работу в команде, а также положительно сказывается на скорости разработки. Опираясь на одну из них, можно корректно структурировать исходный код программного обеспечения за счет четких правил, выбранных программистами.</p>
16
<p>Единая парадигма дает возможность избежать ошибок, упрощает работу в команде, а также положительно сказывается на скорости разработки. Опираясь на одну из них, можно корректно структурировать исходный код программного обеспечения за счет четких правил, выбранных программистами.</p>
17
<p>Сегодня существуют различные парадигмы разработки. Пример - процедурная. Она базируется на работе с функциями. Также есть логическая парадигма программирования. При ее использовании решаются базовые логические задачи, использующие значения "true" и "false". Но есть и еще одна концепция программирования. Она называется объектно-ориентированной.</p>
17
<p>Сегодня существуют различные парадигмы разработки. Пример - процедурная. Она базируется на работе с функциями. Также есть логическая парадигма программирования. При ее использовании решаются базовые логические задачи, использующие значения "true" и "false". Но есть и еще одна концепция программирования. Она называется объектно-ориентированной.</p>
18
<p>Далее речь пойдет именно о ней. Предстоит выяснить, что это за концепция, когда и для каких целей она используется. Также необходимо выяснить структуру характерного приложения, написанного при помощи ООП, присущие преимущества и недостатки. Предложенная информация ориентирована на широкую публику. Она поможет как уже опытным специалистам, так и обычным пользователям погрузиться в основы объектно-ориентированного программирования.</p>
18
<p>Далее речь пойдет именно о ней. Предстоит выяснить, что это за концепция, когда и для каких целей она используется. Также необходимо выяснить структуру характерного приложения, написанного при помощи ООП, присущие преимущества и недостатки. Предложенная информация ориентирована на широкую публику. Она поможет как уже опытным специалистам, так и обычным пользователям погрузиться в основы объектно-ориентированного программирования.</p>
19
<h2>Определение</h2>
19
<h2>Определение</h2>
20
<p>ООП - одна из самых популярных парадигм разработки, которая подразумевает организацию программного кода за счет данных и объектов, а не функций и логических структур. Методология, основанная на представлении программы в качестве совокупности взаимодействующих объектов, каждый из которых выступает экземпляром определенного класса, а классы образуют иерархию наследования.</p>
20
<p>ООП - одна из самых популярных парадигм разработки, которая подразумевает организацию программного кода за счет данных и объектов, а не функций и логических структур. Методология, основанная на представлении программы в качестве совокупности взаимодействующих объектов, каждый из которых выступает экземпляром определенного класса, а классы образуют иерархию наследования.</p>
21
<p>Идеологически объектно-ориентированная разработка - подход к написанию кода как к моделированию информационных объектов, решающий на уровне основную задачу структурного программирования: структурирования информации с точки зрения ее управляемости. Это существенно улучшает управляемость самим процессом моделирования, что представляет важность при формировании крупных проектов.</p>
21
<p>Идеологически объектно-ориентированная разработка - подход к написанию кода как к моделированию информационных объектов, решающий на уровне основную задачу структурного программирования: структурирования информации с точки зрения ее управляемости. Это существенно улучшает управляемость самим процессом моделирования, что представляет важность при формировании крупных проектов.</p>
22
<p>Обычно объект в программном коде - это полноценные блоки данных. Они имеют определенные наборы характеристик и возможностей. Объекты могут олицетворять различные элементы. Пример - человек, у которого есть:</p>
22
<p>Обычно объект в программном коде - это полноценные блоки данных. Они имеют определенные наборы характеристик и возможностей. Объекты могут олицетворять различные элементы. Пример - человек, у которого есть:</p>
23
<ul><li>фамилия;</li>
23
<ul><li>фамилия;</li>
24
<li>имя;</li>
24
<li>имя;</li>
25
<li>отчество;</li>
25
<li>отчество;</li>
26
<li>номер телефона;</li>
26
<li>номер телефона;</li>
27
<li>место жительства и так далее.</li>
27
<li>место жительства и так далее.</li>
28
</ul><p>Объектами также могут выступать небольшие программы и утилиты с минимумом характеристик из реального мира, но с увеличенным набором функций. Объекты имеют возможность взаимодействия друг с другом, пользователями и иными компонентами программы.</p>
28
</ul><p>Объектами также могут выступать небольшие программы и утилиты с минимумом характеристик из реального мира, но с увеличенным набором функций. Объекты имеют возможность взаимодействия друг с другом, пользователями и иными компонентами программы.</p>
29
<p>Концепции ООП вынуждают разработчиков фокусироваться на объектах, которыми необходимо управлять. Логика, позволяющая изменять информацию или взаимодействовать с элементами проекта, отходит на второй план. Соответствующий подход хорошо подходит тогда, когда пишутся комплексные программные решения, требующие постоянной поддержки со стороны большого количества разработчиков.</p>
29
<p>Концепции ООП вынуждают разработчиков фокусироваться на объектах, которыми необходимо управлять. Логика, позволяющая изменять информацию или взаимодействовать с элементами проекта, отходит на второй план. Соответствующий подход хорошо подходит тогда, когда пишутся комплексные программные решения, требующие постоянной поддержки со стороны большого количества разработчиков.</p>
30
<h2>Структура</h2>
30
<h2>Структура</h2>
31
<p>На уровне ООП выделяются несколько ключевых элементов:</p>
31
<p>На уровне ООП выделяются несколько ключевых элементов:</p>
32
<ul><li>объекты;</li>
32
<ul><li>объекты;</li>
33
<li>методы;</li>
33
<li>методы;</li>
34
<li>атрибуты;</li>
34
<li>атрибуты;</li>
35
<li>классы.</li>
35
<li>классы.</li>
36
</ul><p>На них базируется вся концепция объектно-ориентированной разработки. Иногда можно выделить больше ключевых элементов, а также иные структуры, связанные с рассматриваемой концепцией, но указанные компоненты поддерживаются всегда. Далее они будут изучены с точки зрения ООП более подробно.</p>
36
</ul><p>На них базируется вся концепция объектно-ориентированной разработки. Иногда можно выделить больше ключевых элементов, а также иные структуры, связанные с рассматриваемой концепцией, но указанные компоненты поддерживаются всегда. Далее они будут изучены с точки зрения ООП более подробно.</p>
37
<h3>Объекты</h3>
37
<h3>Объекты</h3>
38
<p>В рассматриваемой структуре объекты находятся не на первом месте, но изучение парадигмы обычно начинается с них. Это связано с тем, что понимание упомянутого элемента упростит дальнейшее знакомство с концепцией разработки.</p>
38
<p>В рассматриваемой структуре объекты находятся не на первом месте, но изучение парадигмы обычно начинается с них. Это связано с тем, что понимание упомянутого элемента упростит дальнейшее знакомство с концепцией разработки.</p>
39
<p>Объект - фрагмент кода, который описывает элемент с конкретным набором характеристик и функций. Пример - создание видеоигры. Здесь есть персонаж - главный герой. Этот "человек" может в программном коде быть представлен в качестве отдельного объекта с разнообразными характеристиками:</p>
39
<p>Объект - фрагмент кода, который описывает элемент с конкретным набором характеристик и функций. Пример - создание видеоигры. Здесь есть персонаж - главный герой. Этот "человек" может в программном коде быть представлен в качестве отдельного объекта с разнообразными характеристиками:</p>
40
<ul><li>здоровье;</li>
40
<ul><li>здоровье;</li>
41
<li>сила;</li>
41
<li>сила;</li>
42
<li>интеллект;</li>
42
<li>интеллект;</li>
43
<li>урон;</li>
43
<li>урон;</li>
44
<li>ловкость.</li>
44
<li>ловкость.</li>
45
</ul><p>У персонажа также имеются функции (методы) - магические способности, особые боевые приемы, используемые героем.</p>
45
</ul><p>У персонажа также имеются функции (методы) - магические способности, особые боевые приемы, используемые героем.</p>
46
<p>Объекты используются для описания других персонажей, а также различных средств передвижения.</p>
46
<p>Объекты используются для описания других персонажей, а также различных средств передвижения.</p>
47
<p>Объект - это набор переменных и функций. Еще одним примером объекта может послужить карточка товара в каталоге того или иного интернет-магазина.</p>
47
<p>Объект - это набор переменных и функций. Еще одним примером объекта может послужить карточка товара в каталоге того или иного интернет-магазина.</p>
48
<h3>Метод</h3>
48
<h3>Метод</h3>
49
<p>Метод - функция, описанная внутри объекта или класса. Методы относятся к конкретному элементу и дают возможность взаимодействовать с ними или другими кодовыми фрагментами. На примере, представленном ранее, можно понять, что собой представляет метод. В случае с игровым персонажем - это его "способности". Когда герой будет выполнять действия в игре, он будет использовать методы, описанные в его объекте.</p>
49
<p>Метод - функция, описанная внутри объекта или класса. Методы относятся к конкретному элементу и дают возможность взаимодействовать с ними или другими кодовыми фрагментами. На примере, представленном ранее, можно понять, что собой представляет метод. В случае с игровым персонажем - это его "способности". Когда герой будет выполнять действия в игре, он будет использовать методы, описанные в его объекте.</p>
50
<h3>Атрибуты</h3>
50
<h3>Атрибуты</h3>
51
<p>Атрибуты - это конкретные характеристики элемента. Они могут быть представлены переменными с данными. В случае с игровым персонажем можно провести аналогию - характеристики в виде:</p>
51
<p>Атрибуты - это конкретные характеристики элемента. Они могут быть представлены переменными с данными. В случае с игровым персонажем можно провести аналогию - характеристики в виде:</p>
52
<ul><li>скорости;</li>
52
<ul><li>скорости;</li>
53
<li>интеллекта;</li>
53
<li>интеллекта;</li>
54
<li>выносливости;</li>
54
<li>выносливости;</li>
55
<li>иных статистических показателей.</li>
55
<li>иных статистических показателей.</li>
56
</ul><p>Атрибуты - параметры элементов в коде. Они помогают описывать программные компоненты.</p>
56
</ul><p>Атрибуты - параметры элементов в коде. Они помогают описывать программные компоненты.</p>
57
<h3>Классы</h3>
57
<h3>Классы</h3>
58
<p>Класс - самое абстрактное понятие в ООП. Оно является обобщенным. Класс напоминает шаблон, на основании которого будут строить другие компоненты структуры кода. Несколько похожих между собой элементов кода (пример - пользовательские профили) будут обладать одинаковой структурой. Это значит, что их можно отнести к одному и тому же классу. Каждый объект в исходном приложении выступает экземпляром того или иного класса.</p>
58
<p>Класс - самое абстрактное понятие в ООП. Оно является обобщенным. Класс напоминает шаблон, на основании которого будут строить другие компоненты структуры кода. Несколько похожих между собой элементов кода (пример - пользовательские профили) будут обладать одинаковой структурой. Это значит, что их можно отнести к одному и тому же классу. Каждый объект в исходном приложении выступает экземпляром того или иного класса.</p>
59
<p>Чтобы лучше понимать классы, можно провести аналогию с играми. В какой-нибудь онлайн RPG могут быть самые разные герои:</p>
59
<p>Чтобы лучше понимать классы, можно провести аналогию с играми. В какой-нибудь онлайн RPG могут быть самые разные герои:</p>
60
<ul><li>лучники;</li>
60
<ul><li>лучники;</li>
61
<li>мистики;</li>
61
<li>мистики;</li>
62
<li>орки;</li>
62
<li>орки;</li>
63
<li>тени;</li>
63
<li>тени;</li>
64
<li>воины;</li>
64
<li>воины;</li>
65
<li>люди;</li>
65
<li>люди;</li>
66
<li>зооморфы и так далее.</li>
66
<li>зооморфы и так далее.</li>
67
</ul><p>Каждого героя описывать сложно и долго, а еще - нелогично, ведь у них множество общих методов и характеристик.</p>
67
</ul><p>Каждого героя описывать сложно и долго, а еще - нелогично, ведь у них множество общих методов и характеристик.</p>
68
<p>Это приводит к тому, что разработчик может создать класс - объект, который становится базой для других элементов. Пример класса - персонаж. Он умеет ходить, драться, обладает характеристиками вроде здоровья, маны. У героя есть атрибуты, как и у любых рас и классов в игре. Человек-воин (объект) с конкретным ником будет иметь более специфичные характеристики и методы, которые будут меняться в зависимости от решений пользователя и других внешних факторов. Класс - пример наследования и абстракции, который упрощает генерацию новых программных компонентов.</p>
68
<p>Это приводит к тому, что разработчик может создать класс - объект, который становится базой для других элементов. Пример класса - персонаж. Он умеет ходить, драться, обладает характеристиками вроде здоровья, маны. У героя есть атрибуты, как и у любых рас и классов в игре. Человек-воин (объект) с конкретным ником будет иметь более специфичные характеристики и методы, которые будут меняться в зависимости от решений пользователя и других внешних факторов. Класс - пример наследования и абстракции, который упрощает генерацию новых программных компонентов.</p>
69
<p>Выше - наглядный пример, который поможет описать структуру в рассматриваемой концепции.</p>
69
<p>Выше - наглядный пример, который поможет описать структуру в рассматриваемой концепции.</p>
70
<h2>Основные принципы</h2>
70
<h2>Основные принципы</h2>
71
<p>Основные принципы структурирования в случае с изучаемой концепцией связываются с разными аспектами базового понимания предметной задачи, которое требуется для оптимального манипулирования моделью. Рассматриваемый тип программирования закладывает некоторые правила создания и использования всех структурных компонентов, включая классы и методы.</p>
71
<p>Основные принципы структурирования в случае с изучаемой концепцией связываются с разными аспектами базового понимания предметной задачи, которое требуется для оптимального манипулирования моделью. Рассматриваемый тип программирования закладывает некоторые правила создания и использования всех структурных компонентов, включая классы и методы.</p>
72
<p>К основным принципам разработки при помощи изучаемой концепции можно отнести:</p>
72
<p>К основным принципам разработки при помощи изучаемой концепции можно отнести:</p>
73
<ul><li>инкапсуляцию;</li>
73
<ul><li>инкапсуляцию;</li>
74
<li>наследование;</li>
74
<li>наследование;</li>
75
<li>абстракцию;</li>
75
<li>абстракцию;</li>
76
<li>полиморфизм.</li>
76
<li>полиморфизм.</li>
77
</ul><p>При помощи обычного человеческого языка можно выразить идеологию ООП. Иногда можно сократить принципы программирования до трех, опустив абстракцию. Далее каждый принцип будет рассмотрен более детально.</p>
77
</ul><p>При помощи обычного человеческого языка можно выразить идеологию ООП. Иногда можно сократить принципы программирования до трех, опустив абстракцию. Далее каждый принцип будет рассмотрен более детально.</p>
78
<h3>Инкапсуляция</h3>
78
<h3>Инкапсуляция</h3>
79
<p>Понятие инкапсуляции указывает на то, что все важные данные, необходимые для нормальной работы объектов, будут храниться в этом же самом компоненте. Только определенные сведения будут доступны для внешних элементов и функций.</p>
79
<p>Понятие инкапсуляции указывает на то, что все важные данные, необходимые для нормальной работы объектов, будут храниться в этом же самом компоненте. Только определенные сведения будут доступны для внешних элементов и функций.</p>
80
<p>Информация конкретного объекта или класса хранится в пределах каждого этого объекта или класса. Изменять ее через другие классы запрещено. У окружения имеется право только на запрос "публичных" методов и атрибутов.</p>
80
<p>Информация конкретного объекта или класса хранится в пределах каждого этого объекта или класса. Изменять ее через другие классы запрещено. У окружения имеется право только на запрос "публичных" методов и атрибутов.</p>
81
<p>За счет инкапсуляции удается быстро и безопасно организовывать иерархические структуры. Она сводит к минимуму повреждение информации в пределах того или иного класса со стороны.</p>
81
<p>За счет инкапсуляции удается быстро и безопасно организовывать иерархические структуры. Она сводит к минимуму повреждение информации в пределах того или иного класса со стороны.</p>
82
<h3>Наследование</h3>
82
<h3>Наследование</h3>
83
<p>Изучая объектно-ориентированное программирование, каждому специалисту предстоит столкнуться с наследованием. Это основная суть взаимоотношений между объектами и классами.</p>
83
<p>Изучая объектно-ориентированное программирование, каждому специалисту предстоит столкнуться с наследованием. Это основная суть взаимоотношений между объектами и классами.</p>
84
<p>Для того, чтобы не приходилось создавать каждый раз одинаковые элементы в программной коде, можно написать класс над классами с более общими характеристиками и функциями. Далее - постепенно наследовать от него те или иные параметры.</p>
84
<p>Для того, чтобы не приходилось создавать каждый раз одинаковые элементы в программной коде, можно написать класс над классами с более общими характеристиками и функциями. Далее - постепенно наследовать от него те или иные параметры.</p>
85
<p>За счет специальных конструкций разработчики смогут забрать из классов ряд атрибутов или методов, оставить их в прежней форме или дополнить новыми компонентами, переосмыслить на свое усмотрение и создать из них уникальный объект/подкласс для дальнейшего наследования опций.</p>
85
<p>За счет специальных конструкций разработчики смогут забрать из классов ряд атрибутов или методов, оставить их в прежней форме или дополнить новыми компонентами, переосмыслить на свое усмотрение и создать из них уникальный объект/подкласс для дальнейшего наследования опций.</p>
86
<p>Чтобы лучше понимать наследование, рекомендуется рассмотреть наглядный пример. Речь зайдет о формировании абстрактного элемента "Средство передвижения". Здесь:</p>
86
<p>Чтобы лучше понимать наследование, рекомендуется рассмотреть наглядный пример. Речь зайдет о формировании абстрактного элемента "Средство передвижения". Здесь:</p>
87
<ol><li>Этот класс может набирать скорость и перевозить людей.</li>
87
<ol><li>Этот класс может набирать скорость и перевозить людей.</li>
88
<li>Из него будет формироваться подкласс "Автобус". Он унаследует базовые параметры и уточнит их определенным количеством мест для людей, а также предельной скоростью.</li>
88
<li>Из него будет формироваться подкласс "Автобус". Он унаследует базовые параметры и уточнит их определенным количеством мест для людей, а также предельной скоростью.</li>
89
<li>Далее будет создан элемент "Икарус". Он задаст более точную скорость, планировку, количество дверей и иные специфичные параметры.</li>
89
<li>Далее будет создан элемент "Икарус". Он задаст более точную скорость, планировку, количество дверей и иные специфичные параметры.</li>
90
</ol><p>Полный набор опций прописывать "с нуля" не придется. Достаточно воспользоваться классовым экспортом и дополнить код конкретными (новыми) компонентами.</p>
90
</ol><p>Полный набор опций прописывать "с нуля" не придется. Достаточно воспользоваться классовым экспортом и дополнить код конкретными (новыми) компонентами.</p>
91
<h3>Абстракция</h3>
91
<h3>Абстракция</h3>
92
<p>Каждый верхний слой над элементом более абстрактный, чем его "младшая версия". Этот прием дает возможность не переписывать много раз один и тот же компонент с одинаковыми атрибутами и методами. Абстрактные классы используются для формирования более конкретных "шаблонов" и характерных им компонентов без описания реализации функций заранее (в этом заключается суть абстракций), а оставляя исключительно базовые шаблоны для дальнейших надстроек.</p>
92
<p>Каждый верхний слой над элементом более абстрактный, чем его "младшая версия". Этот прием дает возможность не переписывать много раз один и тот же компонент с одинаковыми атрибутами и методами. Абстрактные классы используются для формирования более конкретных "шаблонов" и характерных им компонентов без описания реализации функций заранее (в этом заключается суть абстракций), а оставляя исключительно базовые шаблоны для дальнейших надстроек.</p>
93
<p>Абстракции должны быть публичными. У них не должно быть реализаций методов. Это их отличия от дочерних классов.</p>
93
<p>Абстракции должны быть публичными. У них не должно быть реализаций методов. Это их отличия от дочерних классов.</p>
94
<h3>Полиморфизм</h3>
94
<h3>Полиморфизм</h3>
95
<p>Объектно-ориентированное программирование поддерживает полиморфизм. С его помощью одни и те же методы могут использоваться для обработки различных типов данных. Полиморфизм в языках программирования отличается:</p>
95
<p>Объектно-ориентированное программирование поддерживает полиморфизм. С его помощью одни и те же методы могут использоваться для обработки различных типов данных. Полиморфизм в языках программирования отличается:</p>
96
<ul><li>в C++ и похожих на него языках для реализации используется "перегрузка";</li>
96
<ul><li>в C++ и похожих на него языках для реализации используется "перегрузка";</li>
97
<li>у JavaScript по умолчанию функции умеют обрабатывать разные типы информации.</li>
97
<li>у JavaScript по умолчанию функции умеют обрабатывать разные типы информации.</li>
98
</ul><p>При помощи полиморфизма можно идентичными методами обрабатывать разные типы данных. Пример - числа двузначные и "с плавающей точкой". Полиморфизмом может считаться возможностью определять методы в дочерних classes для обработки других видов данных или выполнения дополнительных операций при вызове аналогичного метода.</p>
98
</ul><p>При помощи полиморфизма можно идентичными методами обрабатывать разные типы данных. Пример - числа двузначные и "с плавающей точкой". Полиморфизмом может считаться возможностью определять методы в дочерних classes для обработки других видов данных или выполнения дополнительных операций при вызове аналогичного метода.</p>
99
<h2>Языки</h2>
99
<h2>Языки</h2>
100
<p>Объектно-ориентированное программирование используют многие языки. Среди них можно выделить:</p>
100
<p>Объектно-ориентированное программирование используют многие языки. Среди них можно выделить:</p>
101
<ol><li>Ruby. Является высокоуровневым, динамически типизированным.</li>
101
<ol><li>Ruby. Является высокоуровневым, динамически типизированным.</li>
102
<li>C++ - статически типизированный язык. Относится к общему назначению. Ориентирован на ООП.</li>
102
<li>C++ - статически типизированный язык. Относится к общему назначению. Ориентирован на ООП.</li>
103
<li>JavaScript - известный ЯП с поддержкой динамической типизации. Подходит для использования различных парадигм программирования.</li>
103
<li>JavaScript - известный ЯП с поддержкой динамической типизации. Подходит для использования различных парадигм программирования.</li>
104
</ol><p>Это не исчерпывающий список. Языков с ООП очень много: Python, C#, PHP, Java и другие.</p>
104
</ol><p>Это не исчерпывающий список. Языков с ООП очень много: Python, C#, PHP, Java и другие.</p>
105
<h2>Области применения</h2>
105
<h2>Области применения</h2>
106
<p>Объектно-ориентированные системы используются для:</p>
106
<p>Объектно-ориентированные системы используются для:</p>
107
<ul><li>структурирования данных;</li>
107
<ul><li>структурирования данных;</li>
108
<li>повышения управляемости приложениями;</li>
108
<li>повышения управляемости приложениями;</li>
109
<li>точного определения взаимодействия одних компонентов с другими;</li>
109
<li>точного определения взаимодействия одних компонентов с другими;</li>
110
<li>улучшения масштабируемости;</li>
110
<li>улучшения масштабируемости;</li>
111
<li>внедрения изменений без переписывания всего кода.</li>
111
<li>внедрения изменений без переписывания всего кода.</li>
112
</ul><p>ООП поддерживается основной массой известных и популярных в 21 веке языков разработки.</p>
112
</ul><p>ООП поддерживается основной массой известных и популярных в 21 веке языков разработки.</p>
113
<h2>Преимущества и недостатки</h2>
113
<h2>Преимущества и недостатки</h2>
114
<p>У программно-ориентированного программирования имеется множество преимуществ. К сильным сторонам ООП относят:</p>
114
<p>У программно-ориентированного программирования имеется множество преимуществ. К сильным сторонам ООП относят:</p>
115
<ul><li>модульность за счет инкапсуляции;</li>
115
<ul><li>модульность за счет инкапсуляции;</li>
116
<li>возможность использовать один и тот же код много раз;</li>
116
<li>возможность использовать один и тот же код много раз;</li>
117
<li>высокую скорость разработки;</li>
117
<li>высокую скорость разработки;</li>
118
<li>расширяемость;</li>
118
<li>расширяемость;</li>
119
<li>простоту восприятия;</li>
119
<li>простоту восприятия;</li>
120
<li>высокий уровень безопасности;</li>
120
<li>высокий уровень безопасности;</li>
121
<li>гибкость.</li>
121
<li>гибкость.</li>
122
</ul><p>Недостатки заключаются в том, что парадигма не уделяет достаточно много внимания алгоритмам и вычислениям. Из-за этого некоторые программы получают больше исходного кода, чем в случае с функциональной разработкой. ООП может негативно сказываться на скорости компиляции приложения, особенно в масштабных проектах.</p>
122
</ul><p>Недостатки заключаются в том, что парадигма не уделяет достаточно много внимания алгоритмам и вычислениям. Из-за этого некоторые программы получают больше исходного кода, чем в случае с функциональной разработкой. ООП может негативно сказываться на скорости компиляции приложения, особенно в масштабных проектах.</p>
123
<p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em></p>
123
<p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em></p>
124
124