HTML Diff
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