Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Есть ли недостатки у ООП ? 
:(
    Опции темы
iipetrov
Дата 21.5.2013, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 21.5.2013




Есть ли какие-то недостатки у ООП ? 
Бывает ли, что задача плохо ложится на ООП ? Обязательно ли тем не менее решать ее в рамках парадигмы ООП ? 
Является ли признаком плохого программиста написание программ без использования ООП (или с частичным использованием ООП) ?
PM MAIL   Вверх
Фантом
Дата 21.5.2013, 13:47 (ссылка) |    (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008




Цитата(iipetrov @  21.5.2013,  14:33 Найти цитируемый пост)
Есть ли какие-то недостатки у ООП ? 

Да.

Цитата(iipetrov @  21.5.2013,  14:33 Найти цитируемый пост)
Бывает ли, что задача плохо ложится на ООП ?

Да. 

Цитата(iipetrov @  21.5.2013,  14:33 Найти цитируемый пост)
Обязательно ли тем не менее решать ее в рамках парадигмы ООП ? 

Нет.

Цитата(iipetrov @  21.5.2013,  14:33 Найти цитируемый пост)
Является ли признаком плохого программиста написание программ без использования ООП (или с частичным использованием ООП) ? 

Нет.
PM   Вверх
Arantir
Дата 21.5.2013, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012




А теперь расширенная версия:  smile 

Цитата(iipetrov @  21.5.2013,  12:33 Найти цитируемый пост)
Есть ли какие-то недостатки у ООП ? 

Разумеется. Для каждого класса задач существуют собственное методы и методологии решения. Так не только в программировании. Универсальных решений не существует. Недостатки ООП не являются статичными, они в большей мере проявляются при соответствующих обстоятельствах, например, сложность тестирования крупных программ. По-этому нет четкого конкретного списка недостатков ООП, так как они не всегда проявляют себя.

Цитата(iipetrov @  21.5.2013,  12:33 Найти цитируемый пост)
Бывает ли, что задача плохо ложится на ООП ?

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

Цитата(iipetrov @  21.5.2013,  12:33 Найти цитируемый пост)
Обязательно ли тем не менее решать ее в рамках парадигмы ООП ? 

Задачу из прошлой цитаты решать с помощью ООП не обязательно и не желательно.

Цитата(iipetrov @  21.5.2013,  12:33 Найти цитируемый пост)
Является ли признаком плохого программиста написание программ без использования ООП (или с частичным использованием ООП) ? 

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


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
Alexeis
Дата 21.5.2013, 17:11 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград




  Параллельные задачи плохо ложатся на ООП. ООП требует, чтобы состояние объекта менялось скачкообразно при возникновении событий. Если более одного потока "терроризируют" объект, синхронизация доступа может сильно усложнить реализацию, замедлить доступ и приводить к различного рода гонкам и дедлокам. Объекты плохо описывают быстро (непрерывно меняющиеся процессы) , потому как код пишут исходя из предположения, что состояние объекта на определенном участке остается неизменным. Если это не так, то требуется блокировка состояния объекта. Блокировка же объекта может привести к тому, что он перестает отражать актуальное состояние того что он описывает, что в свою очередь может повлечь непредсказуемые последствия ( система занималась бесполезной работой, в то время как пропущено важное событие ). 
  Грубо говоря ООП хорошо работает с гладкими функциями, когда малое возмущение входов порождает малое возмущение на выходах.
  Пример инертности состояния. Пусть есть 3 зависимых объекта объекта A,B,C. состояние объекта в момент времени i обозначим малой буквой. Например ai, а предыдущее состояние ai-1 . xi - входной возмущающий параметр.
Определим зависимости таким образом. 
ai=A(xi,ai-1)
bi=B(ai,bi-1)
ci=C(ai,bi,ci-1)
---------------------------
итерация №1 - x1
Вычисляется состояние объекта А . a1=A(x1,a0) . Состояния B и С неизменные
От объекта А зависят 2 объекта В и С. Генерятся 2 события. 1е для B и 2е для C
---------------------------
итерация №2
Вычисляется состояние одного из объектов B или C
1)Пусть вычисляется сначала B
b2=B(a1,b0) - b1==b0, генерится событие для С (поскольку изменился B)
Объект С остался неизменным с0

2)Пусть вычисляется сначала С
с2=С(a1,b0,c0) с1==с0
Объект B остался неизменным b0
-----------------------------

итерация №3
1) вычисляется событие B->C
c3=C(a1,b2,c0)  или C(A(x1,a0), B(A(x1,a0), b0), c0) 
2) вычисляется событие A->B, затем B->C
b3=B(a1,b0) , b3==b2 - результат как в 1й ветке
с3=С(a1, b2, c2) или C(A(x1,a0), B(A(x1,a0), b0), С(A(x1,a0), b0, c0)) 
------------------------------------

Итого имеем в зависимости от порядка вычисления событий два разных состояния с3
C(A(x1,a0), B(A(x1,a0), b0), c0)  и C(A(x1,a0), B(A(x1,a0), b0), С(A(x1,a0), b0, c0))

На ровном месте получили состояние гонки.  Добиться однозначности можно лишь наложив блокировку на объект С. А теперь, если рассмотреть общий случай, что состояние входа x может меняться на каждой итерации, то для достижения правильного результата потребуется одновременно блокировка и B и С, что приводит в конечном итоге к тому параллельно это вообще не исполниться smile .

  Решение этой задачи через функции будет очевидно проще и быстрее.


--------------------
Vit вечная память.

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

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
krundetz
Дата 22.5.2013, 10:58 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)




 smile 

серебряной пули не существует


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила раздела «Флейм»
Sneg0k

Добро пожаловать в «Флейм».

В разделе не действуют многие правила:

  • Можно оффтопить(умеренно)
  • Можно общаться на темы, не только связанные с программированием.

Строго запрещено:

  • Размещать рекламу
  • Обсуждать политику
  • Оскорблять друг-друга и переходить на личности
  • Наезжать, провоцировать других участников форума
  • Материться
  • Троллить

Напоминаем о существовании волшебной кнопочки "Репорт". Если вы увидели сообщение, несовместимое с жизнью, просьба подвести на нее курсор и клацнуть левой клавишей мышки. Тем самым вы сможете призвать злого, но жутко справедливого джина-модератора, который нашлет порчу на злостного нарушителя. Кстати - счётчик сообщений здесь не растёт.


Глас Винграда:


Глас Философии:


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Sneg0k

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Флейм | Следующая тема »


 




[ Время генерации скрипта: 0.1696 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.