kschandru Ответов: 3

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


вопрос интервью

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

Mehdi Gholam

Не все используют объектно-ориентированное программирование, это зависит от пользователя и проблемы.

Sergey Alexandrovich Kryukov

И не только в этом. Некоторые используют не-ООП технологии, но многие только делают вид, что они используют ООП только потому, что они пишут ключевые слова, такие как "класс", но на самом деле они делают все, что угодно, но не ООП. Я знал много примеров такой вещи, и первый пример, который я знал, был большим коммерческим продуктом.
--СА

Albert Holguin

Это я тоже видел... уродливый...

3 Ответов

Рейтинг:
24

OriginalGriff

Почему? Потому что если вы придерживаетесь правил, это делает сложный код проще в разработке, более надежным, более ремонтопригодным и вообще лучше.

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

Есть и другие причины, но они довольно хороши!


Mehdi Gholam

Всеобъемлющий, 5 ЕД

Albert Holguin

+5

Member 11228773

очень хорошо объяснил.. 5*

Рейтинг:
2

elgaabeb

Зачем использовать ООП ?

Давайте взглянем на то, что до появления концепций ООП существовало "процедурное" программирование, которое состояло в проектировании программного обеспечения как набора функций и процедур, которые Верри сварил.Таким образом, программное обеспечение быстро становится сложным, трудным для понимания и поддержания.

ООП ввела новые концепции для проектирования программного обеспечения : концепция объекта реального мира.
Эта концепция придет к созданию программного обеспечения в виде отдельных модулей кода, которые поднимут развязку и увеличат повторное использование кода.
Общее использование развязки в ООП заключается в полиморфном разделении инкапсуляции.
Для повторяемости он вводится понятиями наследования и дженериков.
См. Решение 1, чтобы получить краткое определение полиморфизма, дженериков, наследования и инкапсуляции.

Надеюсь, это поможет.


Emilio Garavaglia

Объектная концепция ООП-это не "реальный мир". Просто (в смысле одной из) его моделей. Концепция "разделенного модуля" не требует необходимого ООП, и повторное использование не является прямым следствием ООП (плохо спроектированный беспорядок запутанных объектов практически не используется повторно)
Универсальное программирование-это не ООП. Он может быть использован в ООП, но имеет свое собственное определение и не обязательно относится к объектам.

Большинство из этих аргументов относится скорее к мифологии ООП, чем к технологии.

elgaabeb

Очень интересная точка зрения с вашей стороны, но не совсем обычная.
Только один вопрос: Вы когда-нибудь использовали процедурный язык программирования???
Я упомянул "реальный мир" в соответствии с источником вдохновения этой концепции программирования.
Мы никогда не могли бы взять плохой пример в качестве эталона, вы только что сказали, что это плохой дизайн !
Я никогда не говорил, что generic-это ООП, Generic-это литеральное слово, которое вы могли бы сослаться на adictionnary, чтобы увидеть его значение.
ООП-это концепция программирования, которая увеличивает повторяемость, когда объекты могут быть использованы повторно.
ООП мифлогия ?? очень интересно! очень романтично!

Emilio Garavaglia

"вы когда-нибудь использовали процедурный язык программирования???"? Да: C и FORTRAN, как я использовал LISP (функциональный), как я использовал COBOL, Smalltalk, C++, D и т. д.
И я запрограммировал "объекты" (в реальном смысле ООП) на простом языке Си, с правильным использованием разделения компиляции и непрозрачных типов.
Есть языки, которые фундаментально агностичны к технике программирования (C, C++ и D попадают в эту категорию), для которых их стандартная библиотека выдвигает философию (iostream-это ООП, контейнеры-универсальны)...)
Существуют языки (например, C# или Java), которые создаются вокруг хорошо определенной техники программирования (в данном случае ООП, функци-нал для LISP и т. д.), для которых каждая проблема, которую вы хотите решить, должна быть решена с помощью этой единственной техники (даже если она вообще не эффективна). Как следствие, маркетинг был вынужден настаивать на том, что убедительно упирается в предполагаемое "превосходство", которое - на самом деле-не является внутренним, как они хотят, чтобы это выглядело.

elgaabeb

Такс за ваш ответ. Я думаю, мы могли бы обсудить то, что вы указали на форуме.

Рейтинг:
0

Emilio Garavaglia

Плохой вопрос, так как он риторический и содержит ответ.

Он хочет запугать вас, немедленно ограничив ваше мышление:

ПОЧЕМУ-МЫ-ИСПОЛЬЗУЕМ.

Просто невежливо, глупо и нелепо.
Правильный вопрос должен был быть КОГДА (не почему), или Почему и почему нет.

Чего здесь ожидает интервьюер?
Кто-то бросает фейерверк, освещающий всю ночь науки программирования, объясняя красоту ООП и почему во всем мире не должно быть ничего другого?!?

Знают ли они, что c++ STL не является (повторяю: не является) ООП ?
Знают ли они, что в лямбде почти нет ООП?
Знают ли они, что ООП-это просто техника, а не религия?

Невероятно, как много глупости участвует в отборе людей.

Что они ищут? Кто-то молча повинуется своему Богу, или кто-то, способный мыслить?