Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Вообще говоря, основная идея понятна, естественна, и принята(собственно я пришёл к ней сам(и считаю что так быть и должно)). Во многом того что касается теоретических аспектов, я согласен с Татьяной Александровной. Она, например, говорит о том, что важно понять, требует ли задача применения ООП, либо не требует, и скакать от этого при решении конкретных задач. Казалось бы очевидный факт, но, тем не менее, рассуждая о "китах" объектно-ориентированного программирования, очевидно присутствие инкапсуляции и полиморфизма в явном виде в модульном и структурном программировании, однако только наследование в явном виде найти в предшествующих парадигмах сложнее. Таким образом, можно сделать такой вывод: программирование с использование классов, не есть программирование в объектно-ориентированном стиле, а есть только программирование с использованием классов. Программирование с использованием классов, и обоснованным использованием наследования есть программирование в объектно-ориентированном стиле. Можно ли рассуждать так, либо я ошибаюсь ? Приведите пожалуйста несколько примеров задач, где потребуется многократное(частое) использование наследования. Как много может быть классов в среднем в ваших программах ? Каков хотя-бы порядок, 10, 50, 100 ? Подскажите пожалуйста книгу с теоретическими аспектами объектно-ориентированного программирования. Что касается реализации меня полностью устраивает автор упомянутый выше, BS и стандарт. PS Что вы используется для построения диаграмм между классами ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 10:35 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
Самый универсальный пример применения наследования: графические интерфейсы (окошки, контролы и т.д. и т.п.) В остальном у меня "программирование с использованием классов". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 12:10 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
SashaMercury: >>Приведите пожалуйста несколько примеров задач, где потребуется многократное(частое) использование наследования. оконный интерфейс. А вообще банду четырёх почитай, если уж об ООП задумался. >>Как много может быть классов в среднем в ваших программах ? Каков хотя-бы порядок, 10, 50, 100 ? столько, сколько нужно :) вопрос бессмысленный, потому что ответ зависит от размеров проекта, качества проектирования, религии, фазы луны и тысяч других разных причин ))) >>Что вы используется для построения диаграмм между классами ? бумажка-ручка, доска-фломастер. Последняя пара - самая удобная, по моему скромному ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 12:22 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
Dima TСамый универсальный пример применения наследования: графические интерфейсы (окошки, контролы и т.д. и т.п.) В остальном у меня "программирование с использованием классов". Спасибо :) Графические интерфейсы не очень интересны :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 14:29 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
Спасибо, я посмотрю эту книгу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 14:32 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
SashaMercury, вот ты по роду деятельности - математик? Для чего тебе ООП в С++ ? Я думаю что лет через 10 у тебя будет устойчивая ненависть ко всему С++ ООП и в общении - стиль Луговского при обсуждении С++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 15:52 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
SashaMercury Таким образом, можно сделать такой вывод: программирование с использование классов, не есть программирование в объектно-ориентированном стиле, а есть только программирование с использованием классов. Программирование с использованием классов, и обоснованным использованием наследования есть программирование в объектно-ориентированном стиле. Можно ли рассуждать так, либо я ошибаюсь ? Ты ошибаешься. Это всё -- ООП. SashaMercury Приведите пожалуйста несколько примеров задач, где потребуется многократное(частое) использование наследования. Традиционный пример -- любая графика. Рисунки граф. примитивов. Граф.объект, четырёхугольник, трапеция, ромб, прямоугольник, квадрат. (причём уже тут --множественное наследование, квадрат -- и ромб, и прямоугольник) SashaMercury Как много может быть классов в среднем в ваших программах ? Каков хотя-бы порядок, 10, 50, 100 ? 10-50 -- в изолированной. В большой системе -- сотни. SashaMercury Подскажите пожалуйста книгу с теоретическими аспектами объектно-ориентированного программирования. Что касается реализации меня полностью устраивает автор упомянутый выше, BS и стандарт. Тимоти Бадд писал хорошую книгу . SashaMercury Что вы используется для построения диаграмм между классами ? UML ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 16:14 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
maytonЯ думаю что лет через 10 у тебя будет устойчивая ненависть ко всему С++ ООП Я в C++ только 5 лет, но мне уже надоели проблемы ООП. Перевожусь по-тихоньку на ФП, изучая Clojure :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 16:27 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
NekZ, Clojure, безусловно, достойный и интересный язык. Только и в С++ есть FP, и в Clojure -- ООП, так что не понятно, почему ты их пытаешься противопоставлять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 16:52 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
NekZуже надоели проблемы ООП. А какие конкретно проблемы ООП тебе надоели ? А то ООП -- он же разный... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 16:54 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
NekZЯ в C++ только 5 лет, но мне уже надоели проблемы ООП.отличный вброс ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 17:11 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
Мне кажется или вопрос опять звучит как "вот явление, я хочу его называть так"? То есть наверняка есть какие-то определения, близкие к тому, чтобы считаться общепринятыми, но в отличие от математики знание определений настолько глобальных вещей разработке помогает крайне редко. Ни одна задача (кроме учебных где явно прописано требование ООП) этого самого ООП не требует для решения в обязательном порядке, то же можно сказать и просто о наследовании. К тому же некоторые формулировки исходного вопроса вроде "а есть только программирование с использованием классов" выглядят так, будто предполагают определенную ущербность подобного подхода по сравению с неким ООП-стилем, причем без доказательства или хотя бы обоснования. По классам - у меня выходят сотни если Java (практически на любой чих), 2-5 если С++ (ибо бизнес логика ниже js/python/java не опускается). P.S. Если уж на то пошло, то "квадрат, ромб и прямоугольник" - давняя дисциплина специальной олимпиады в разрезе кто от кого происходит и пример почему не стоит слишком уж заморачиваться с ООП ради ООП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 17:13 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
MasterZivSashaMercury Приведите пожалуйста несколько примеров задач, где потребуется многократное(частое) использование наследования. Традиционный пример -- любая графика. Рисунки граф. примитивов. Граф.объект, четырёхугольник, трапеция, ромб, прямоугольник, квадрат. (причём уже тут --множественное наследование, квадрат -- и ромб, и прямоугольник) Добавлю. Бизнес-сущности. Плательщик. Платёж. Услуга. Традиционно их описание лежало в БД. Так было исторически. БД - главенствовала. И неважно будь она на файлах или на MSSQL, существовало мета-описание . И оно было доступно через "SQL> describe tableName". Но с развитием веба и middle-tier всё больше и больше задач стало "зарождаться" не в БД а в слое бизнес-процессов. Вот здесь ООП красуется во всей своей красе. Здесь он - первичен. По нему ORM-ы формируют создающие скрипты. По аннотациям и мета-описателям детализируются типы данных. Возможен вариант RAD-средств и различного рода Ent.Архитекторов но на моём опыте эти описатели не так часто используются. По сути сегодня только исходный код на ЯВУ с огромным количеством сущностей ООП является ПЕРВИЧНЫМ репозитарием знаний по бизнес-cущностям. В нём-же декларированы стереотипы. Родственные связи между классами. Любое обсуждение или дискуссия вокруг бизнес-доработок в конечном счёте как и дороги в Рим - идут к ООП коду. Он есть альфа и омега. Он - первичен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 17:17 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
MasterZivТолько и в С++ есть FP Достаточно бедное ФП с вырвиглазным синтаксисом. и в Clojure -- ООП, так что не понятно, почему ты их пытаешься противопоставлять.[/quot] Ну, не скажи. Там все данные хранятся отдельно от бизнес-логики. А код, их обрабатывающий, представляет из себя множество тоненьких и максимально обобщённых функций, с упором на чистоту (чистые функции). См SO Можно ещё учитывать, что есть такой монстр Франкенштейна с костылями вместо ног и руками из жопы, как Scala, который позиционирует себя как язык с ФП. Вообще, ФП в каждом языке понимается по-своему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 17:36 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
NekZМожно ещё учитывать, что есть такой монстр Франкенштейна с костылями вместо ног и руками из жопы, как Scala, который позиционирует себя как язык с ФП. Вообще, ФП в каждом языке понимается по-своему. Я очень боюсь устроить офтопик. Но всё тки. А какой самый труЪ-ФП и почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 17:41 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
maytonА какой самый труЪ-ФП и почему? Тут каждому своё. Что нравится, то и выбирай. Наверное все наслышаны про Haskell, я думаю, о нём можно сказать труЪ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 17:47 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
Ну ОК. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 19:07 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
C++ язык практического применения, нет никакого смысла сравнивать с академическим баловством ФП-языков. Какой то нужный минимум добавили и то ладно. Nekz, осилишь простенький рейтрейсинг переписать на Кложуре? http://www.sql.ru/forum/1173809-1/tyapnichnyy-benchmark-cpu-part-1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 21:07 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
Зимаргл, Я его только изучаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 21:54 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
Ну крутяк. Мой тяпничный флуд попал в ротацию. Далее - как у Пелевина в Пространстве Фридмана. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 22:02 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
wstМне кажется или вопрос опять звучит как "вот явление, я хочу его называть так"? То есть наверняка есть какие-то определения, близкие к тому, чтобы считаться общепринятыми, но в отличие от математики знание определений настолько глобальных вещей разработке помогает крайне редко. Ни одна задача (кроме учебных где явно прописано требование ООП) этого самого ООП не требует для решения в обязательном порядке, то же можно сказать и просто о наследовании. К тому же некоторые формулировки исходного вопроса вроде "а есть только программирование с использованием классов" выглядят так, будто предполагают определенную ущербность подобного подхода по сравению с неким ООП-стилем, причем без доказательства или хотя бы обоснования. По классам - у меня выходят сотни если Java (практически на любой чих), 2-5 если С++ (ибо бизнес логика ниже js/python/java не опускается). P.S. Если уж на то пошло, то "квадрат, ромб и прямоугольник" - давняя дисциплина специальной олимпиады в разрезе кто от кого происходит и пример почему не стоит слишком уж заморачиваться с ООП ради ООП. Нет, вопрос звучит не так. Совсем просто и и кратко будет следующая постановка вопроса. Инкапсуляция и полиморфизм есть в С, не в таком виде как в С++, не так развиты как в С++, не так оформлены, но есть. В этом плане С++ дал программистам логическое продолжение возможностей абстрагирования при проектировании и разработке. Наследование в том же С, например, в наглядном виде отсутствует(по крайней мере для меня), и потому наследование что-то принципиально новое. Наверняка каждый второй об этом думает когда начинает изучать С++. По причине того, что я не разрабатывал серьёзных проектов на С++, мне сложно представить систему в которой встречается частое наследование между классами. Но я прекрасно понимаю зачем это нужно и почему это удобно. И опять таки, по причине неопытности, мне кажется что ООП в нормальном смысле подразумевает "частое" использование наследования. Построение модели предметной области(в дальнейшем бд), проектирование объектов и связей между ними(если это можно назвать аналогом при проектировании классов) намного проще и очевидней, потому аналогом называть это наверное не стоит. PS А Java тут не авторитет/пример. Сколько классов потребуется(и будет задействовано) чтобы написать программу с выводом любого сообщения на какой-нибудь поток? Сколько классов потребуется чтобы написать программу факторизации? Думаю 0 и 1 не будут ответами ни на один из этих вопросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 02:12 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
MasterZiv Традиционный пример -- любая графика. Рисунки граф. примитивов. Граф.объект, четырёхугольник, трапеция, ромб, прямоугольник, квадрат. (причём уже тут --множественное наследование, квадрат -- и ромб, и прямоугольник) ну вот.. Я думал что должно быть что-то ещё.. maytonБизнес-сущности. Плательщик. Платёж. Услуга. Традиционно их описание лежало в БД. А где в данном примере будет наследование ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 02:18 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
NekZЗимаргл, Я его только изучаю Тогда твое мнение == 0. SashaMercury, на практике, ты используешь какой либо фреймворк. И соответственно ему у тебя и строится программа. Если он ООП (обычно) - ты используешь ООП, если нет - как тебе удобно. Абстрактная теория годится только для хелловорлдов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 02:20 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
Причём наследование, как мне кажется, как правило удобно при дальнейшей доработке. Нужно что-то новое, но давайте не будет трогать старое. Давайте. Наследование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 02:21 |
|
||
|
Теоретические аспекты объектно-ориентированного программирования на С++
|
|||
|---|---|---|---|
|
#18+
Зимаргл Абстрактная теория годится только для хелловорлдов. а потом у нас спутники падают, или что-то там упало год назад. Без понимания теории невозможно программировать качественно, и это не я говорю(хотя и сам так считаю), это говорит BS, и Павловская, например. Да и не только они ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 02:24 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39066282&tid=2018795]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 277ms |
| total: | 413ms |

| 0 / 0 |
