LINUX.ORG.RU

Для чего нужно ООП

 ,


0

2

В процессе изучения дисциплины рассматриваются следующие вопросы: объектно-ориентированный анализ (ООА), объектно-ориентиро­ванное проектирование (ООD), объектно-ориентированное про­граммирование (ООП), шаблоны проектирования, унифицированный язык моделирования UML (Unified Modeling Language), а также спецвопросы объектно-ориентированного языка программирования C# (С_Sharp), касающиеся парадигмы ООП, etc.

В основе всех этих вопросов лежит один и тот же фундамент: способность и необходимость мыслить категориями объектов реального мира, так как специалисту-программисту необходимо разрабатывать Windows-приложения, эмулирующие те или иные системы реального мира.

Не могу не подчеркнуть еще раз:

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

Цитата взята из аннотации к программе дисциплины «Объектно-ориентированное программирование».

В общем, картина мира становится совсем отчетливой (особенно после недавнего обсуждения школьного «Линукса» и про «программу Майкрософт у всех дома»).

Специалисты-программисты, вперед!

★★

Баттхерт от слова Виндоус или от ООП?

staseg ★★★★★ ()

oami

Для чего нужно ООП

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

april ()

Какой-то слишком унылый вброс.

geekless ★★ ()

Для чего нужно ООП

Чтобы функциональщики чувствовали себя элитнее.

dogbert ★★★★★ ()

Особо радует двойная аббревиатура ООП. Да, поясните, пожалуйста, что предполагается изучать в курсе проектирования? Что-то в духе «вот это класс, вот это метод, этот public, а этот - нифига»? А то тут один знакомый утверждает, что ООПроектирование - это настолько фундаментальное знание, что, если человек не прочитал ни единой книги по ООПроектированию, то на него можно смело смотреть с осуждением. Стоит вообще заморачиваться с этим?

Sadler ★★★ ()

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

Симуляторы бюрократизма, лол. Теперь понятно, что меня в продуктах некрософта беспокоило.

schizoid ★★★ ()
Ответ на: комментарий от april

Поддерживать ООП код не выходя из ООП невозможно, не переписывая все с нуля.

Это неправда.

Manhunt ★★★★★ ()

Так разве не очевидно что ИТ-образование в РФ это самое слово на букву Г?

DNA_Seq ★★☆☆☆ ()

что это за ремесленное училище?

qulinxao ★★☆ ()

Хм. Чего-то я очень сомневаюсь, что ООП «эмулирует системы реального мира». Ну а насчёт шиндошса и мелкософта в тексте - так ты кино федерусское посмотри. Внимательно так посмотри, вглядись прямо-таки. Суровый федерусский продакт-плейсмент...

djambeyshik ★★★★★ ()

Всё правильно написано: программисты-специалисты разрабатывают Windows-приложения, эмулирующие системы реального мира, а программисты-дилетанты разрабатывают Linux-приложения, эмулирующие Windows-приложения.

CARS ★★★★ ()

Для чего нужно ООП

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

quantum-troll ★★★★★ ()
Ответ на: комментарий от Sadler

если человек не прочитал ни единой книги по ООПроектированию, то на него можно смело смотреть с осуждением

омг, щас на меня весь лор посмотрит и мне станет плохо :). Хотя, вру, в 1999 или 2000 я купил книгу по visual C++, это считается? :)

true_admin ★★★★★ ()

Отбояню:

Повторное использование объектно-ориентированного кода (в программах) вызвало головную боль у Австралийских Вооруженных Сил. Так как симуляторы все активнее используются для тренировок боевых действий вертолетов, от программистов требуется постоянное повышение реализма используемых сценариев, включая детальные ланд­шафты местности и — в случае операции «Феникс» — стад кенгуру (так как испуганные животные могут легко выдать

расположение воинских частей). Начальник отдела симуляций наземных операций Defense Science and Technologу Organization приказал разработчикам смоделировать перемещения кенгуру и их реакцию на вертолеты. Будучи грамотными программистами, те использовали готовые программные объекты, описывающие поведение пехоты в аналогичной ситуации, заменив изображения солдат на изображения животных и увеличив их скорость. Желая продемонстрировать свое мастерство перед посетителями — американскими пилотами, — горячие австралийские парни «разбудили» кенгуру, пройдя над ними на малой высоте во время симуляции. Кенгуру разбежались, как и предполагалось, и американцы понимающе кивнули… А затем сильно удивились, так как кенгуру, перегруппировавшись, появились из-за холма и выпустили тучу стингеров по злополучным вертолетам. (Программисты забыли удалить соответствующий кусок кода из «пехотных» объектов.) Урок? Объекты создаются с определенными атрибутами, и любой объект-потомок наследует эти атрибуты. Смущенные программисты научились быть более внимательными, используя готовые объекты в своих программах, а американцы уехали с невольным чувством уважения к австралийской фауне. Начальник симулятора отметил, что пилоты с этих пор боятся кенгуру как огня, для чего, собственно, и нужен был этот кусок кода в симуляторе…

imul ★★★★★ ()
Ответ на: комментарий от true_admin

Хотя, вру, в 1999 или 2000 я купил книгу по visual C++, это считается? :)

Купил книгу по C++ ? Это ужасно.

Sadler ★★★ ()
Ответ на: комментарий от Sadler

Особо радует двойная аббревиатура ООП. Да, поясните, пожалуйста, что предполагается изучать в курсе проектирования? Что-то в духе «вот это класс, вот это метод, этот public, а этот - нифига»? А то тут один знакомый утверждает, что ООПроектирование - это настолько фундаментальное знание, что, если человек не прочитал ни единой книги по ООПроектированию, то на него можно смело смотреть с осуждением. Стоит вообще заморачиваться с этим?

ООПроектирование - это не класс, метод, скрытый, открытый. Это разновидность т.н. «системного подхода», умение выявлять сущности, общие и частные свойства, взаимосвязи - естественно с уклоном в программирование и рассмотрение общего подхода к решению частных задач. Потом это еще обросло монстроузными паттернами ООПроектирования и часто не представляют одного без другого - за это ООП и стали нелюбить.

staseg ★★★★★ ()
Ответ на: комментарий от djambeyshik

Хм. Чего-то я очень сомневаюсь, что ООП «эмулирует системы реального мира».

Ну и зря. Это удобное средство описания «систем реального мира», т.е. создание модели системы или другими словами «эмуляции».

staseg ★★★★★ ()

ООП это структурное программирование сегодня (с) Структурное программирование это ООП сегодня (с) когда я придумывал ООП я не думал о С++ (с)

ежель кто тебя пугает ООП в ответку кидай АТД и связывание

qulinxao ★★☆ ()

А что тебя смутило,в:

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

если

объектно-ориентированного языка программирования C# (С_Sharp), касающиеся парадигмы ООП, etc.

Napitok ()

ООП нужен для моделирования объектов. Для остального ООП пригоден настолько же, насколько перфоратор пригоден для стоматологических процедур.

Quasar ★★★★★ ()
Ответ на: комментарий от imul

С кенгуру — это байка. Реально там действительно была похожая бага, но нашли и удалили её до показа посетителям.

Miguel ★★★★★ ()
Ответ на: комментарий от Napitok

А что тебя смутило

До-диез там приведен как некая частность, реализующая что-то из ООП, начало-то достаточно общее.

Меня смутила логика рассуждений. И еще странно, что на слово «эмулирующие» такая вялая реакция.

oami ★★ ()
Ответ на: комментарий от djambeyshik

Чего-то я очень сомневаюсь, что ООП «эмулирует системы реального мира».

Бывает, что эмулирует. У тех, кто только что увидел C++ или жабу, а до этого писал исключительно на паскакале с васиком. Вот они, как правило, пишут код, эмулирующий реальный мир.

Те, кто стал постарше, но всё ещё зажимает себя в рамки ООП, пишут с использованием всяких там абстрактных фабрик, которые к реальному миру не имеют никакого отношения, но код делают лучше.

Miguel ★★★★★ ()

Любая абстракция состоит из объектов. Человек мыслит объектами. Логично, что так проще излагать свои мысли в коде.

vurdalak ★★★★★ ()
Ответ на: комментарий от vurdalak

Любая абстракция состоит из объектов. Человек мыслит объектами.

Вот только ООП здесь ни при чём.

Miguel ★★★★★ ()
Ответ на: комментарий от Reset

Например, в хаскеле это модули, алгебраические типы и классы типов. В го — интерфейсы (аналог классов типов) и модули, в lua это метатаблицы (это тоже называют ООП, но мы не будем: это прототипный подход, а не классический), etc.
И в какой-то степени даже CLOS, даже шаблоны Си++.

quantum-troll ★★★★★ ()
Ответ на: комментарий от vurdalak

если трясти стариной то мона вспомнить активные_обьекты
что по сути субьекты

так что человек мыслит моделью(моделями) в которых
более одного действующего лица.

т.е человек мыслит субьектами

поэтому только go только софтшэл.

qulinxao ★★☆ ()
Ответ на: комментарий от quantum-troll

важно вспомнить о субьектах (ака активные_обьекты)
в смолтоке на уровне обьектов идёт обмен сообщениями что несколько вспоминая сети петри и специальную теорию относительности эмулирует паралельность т.е хоар сообщающиеся последовательные процесы.

поэтому go


поэтому не ООП а СубьектноОП

qulinxao ★★☆ ()
Ответ на: комментарий от Sadler

Стоит вообще заморачиваться с этим?

Стоит, только не в привязке к конкретной платформе.

belous_k_a ()
Ответ на: комментарий от quantum-troll

В го — интерфейсы (аналог классов типов) и модули, в lua это метатаблицы (это тоже называют ООП, но мы не будем: это прототипный подход, а не классический),

Это всё варианты ООП.

Reset ★★★★★ ()
Ответ на: комментарий от Reset

С таким же успехом можно назвать ООП практически всё, что угодно.

quantum-troll ★★★★★ ()
Ответ на: комментарий от Miguel

Использование абстрактных объектов в коде и объектно-ориентированное построение мыслей.

vurdalak ★★★★★ ()
Ответ на: комментарий от quantum-troll

ООП использовалось для достижения полиморфизма и инкапсуляции, а так же для более эффективного переиспользования кода.

А процедурное программирование для чего? Ровно для всего выше перечисленного :)

Attila ()

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

Nebuchadnezzar ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.