![]() |
◊ |
www.udomlya.ru | Медиа-Центр | Удомля КТВ | Старый форум |
|
![]() |
#1 |
Новичок
Регистрация: 04.05.2006
Сообщений: 14
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
![]()
Существуют ли задачи которые можно решить с помощью ООП, но недоступные для функционального программирования ?
Простой, казалось бы, вопрос. Есть примеры таких задач ? |
![]() |
![]() |
#2 | |
Местный
Регистрация: 20.09.2007
Сообщений: 4,226
Вы сказали Спасибо: 1
Поблагодарили 6,561 раз(а) в 1,660 сообщениях
|
![]() Цитата:
![]() |
|
![]() |
![]() |
#3 | |
Новичок
Регистрация: 04.05.2006
Сообщений: 14
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
![]() Цитата:
На вскидку я знаю пару пунктов, которые нельзя реализовать без ООП, не затратив много усилий. Но это моё мнение, мой опыт. Поэтому примеров приводить не стал, а спросил мнение окружающих. Операционки это конечно хороший пример, но для написания ядра не требуется ООП. А вот оболочку и всё остальное писать можно уже на чём угодно имея АПИ. Всё таки я настаиваю, что есть ряд задач, которые не решить функциональным программированием без дополнительных производственных затрат. |
|
![]() |
![]() |
#4 | |
Местный
Регистрация: 26.04.2006
Адрес: Удомля, гдежещё
Сообщений: 1,986
Вы сказали Спасибо: 676
Поблагодарили 257 раз(а) в 167 сообщениях
|
![]() Цитата:
ИМХО.
__________________
I never saw a wildthing sorring for itself. A small bird will drop frozen dead without ever felt sorry for itself. |
|
![]() |
![]() |
#5 | |
Новичок
Регистрация: 04.05.2006
Сообщений: 14
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
![]() Цитата:
С самоконтролем я согласен полностью, а с "производственными расходами" - нет. Есть пример, когда "узким местом" в исполнении становится ООП? Мне кажется очень небольшой выигрыш в 99% задач. |
|
![]() |
![]() |
#6 | |
Местный
Регистрация: 28.09.2007
Сообщений: 4,510
Вы сказали Спасибо: 418
Поблагодарили 1,097 раз(а) в 680 сообщениях
|
![]() Цитата:
ЗЫ я не спец по игрушкам, поэтому спорить не собираюсь, просто имхо ![]()
__________________
Каждому, каждому в лучшее верится... Падает, падает ядерный фугас (с) |
|
![]() |
![]() |
#7 |
Местный
Регистрация: 26.04.2006
Адрес: Удомля, гдежещё
Сообщений: 1,986
Вы сказали Спасибо: 676
Поблагодарили 257 раз(а) в 167 сообщениях
|
![]()
Не сам ООП, а те действия (лишние), которые появляются при использовании ООП там, где этого делать не обязательно. Думаю, примеров можно найти в тырнете. Например, использование объектов вместо простых типов.
__________________
I never saw a wildthing sorring for itself. A small bird will drop frozen dead without ever felt sorry for itself. |
![]() |
![]() |
#8 |
Местный
Регистрация: 20.09.2007
Сообщений: 4,226
Вы сказали Спасибо: 1
Поблагодарили 6,561 раз(а) в 1,660 сообщениях
|
![]() |
![]() |
![]() |
#9 |
Местный
Регистрация: 26.04.2006
Адрес: Удомля, гдежещё
Сообщений: 1,986
Вы сказали Спасибо: 676
Поблагодарили 257 раз(а) в 167 сообщениях
|
![]()
Не трогайте шарики!!! В) Мне задачка очень понравилась. Особенно тем, что в ходе решения постоянно приходишь к неверному результату, пока наконец не вылезешь к верному.
__________________
I never saw a wildthing sorring for itself. A small bird will drop frozen dead without ever felt sorry for itself. |
![]() |
![]() |
#10 |
Новичок
Регистрация: 04.05.2006
Сообщений: 14
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
![]()
Задачи, которые решает программист:
Процедурное программирование и ООП определяют подход к реализации всех этих пунктов. Но только ООП на уровне концепции поддерживает пункты 10, 11, 12. Я думал, какой пример будет наиболее удачным, чтобы рассмотреть различия в реализации. Решение маленьких задач. Требует прямого подхода к делу, в них нет смысла отвлекаться на сложную архитектуру программы. В таких случаях имеет смысл выбрать процедурный подход. Для решения сложных задач. Таких как долгосрочные проекты, требующие поддержки, командной разработки и сопровождения - я бы выбрал только ООП. Вот пример задачи. Дерево решений. Необходимо спланировать и разработать систему принятия решений. Условия:
Примеры использования.
Робот? Проведём декомпозицию. Сразу напрашивается разделение действий на две категории:
Это ещё не всё. Действия бывают моментальные и долгосрочные. Дать оценку данным - моментально. А движение - это долгосрочное действие, но оно не отменяет необходимость видеть, думать и т.д. Если во время движение появляется человек, то мы должны поздороваться и продолжить двигаться к цели. Наша система должна поддерживать работу на всех уровнях. От точных команд "двинь пальцем", до "иди работай". В зависимости требований. При этом первый вариант состоит из набора действий, которые в свою очередь имеют свои составляющие. Соответственно условия могут изменяться в любой момент. Если робот строит дом из кубиков и у него садится батарея, то он идёт подзарядить, затем возвращается к строительству. И конечно "reuse". Все действия должны быть единообразно интегрированы друг в друга. Если необходимо сделать дополнительный вид движения, то оно должно учитывать условия и функциональность базовой реализации. Сразу хочу предупредить. Решения в виде конечных автоматов общего вида или просто набора условных переходов, скорее всего приведёт к неработоспособности при постоянном усложнении. Соответственно, из общего понятия "робот" можно перейти к понятию "боевой робот" или "домашний робот". При этом изменения в любом из базовых элементов системы должно поддерживаться в наследственных моделях. Если есть отважные люди, которые осилили столь большой пост и заинтересовались, то было бы не плохо подумать и предложить модель решения. Сейчас требуется ввести базовые понятия структур и общей организации. Расписывать интерфейсы не стоит, это дело вторичное. Я пока набросаю своё решение. |
![]() |
Здесь присутствуют: 2 (пользователей: 0 , гостей: 2) | |
Опции темы | |
Опции просмотра | |
|
|