Здравствуйте, Hard_Club, Вы писали:
H_C>аггрегирование входит в число основных парадигм ООП?
Лично я считаю, что да. В книгах пишут про три кита ООП, инкапсуляция, наследование и полиморфизм. Однако агрегация, то есть агрегирование по ссылке, и композиция, агрегирования по значению, это способ конструировать новые классы на основе уже существующих. В классическом ООП выбор включения одного класса в другой обычно идёт из агрегации, композиции и наследования. Что это если не основа основ ООП?
Здравствуйте, Hard_Club, Вы писали:
H_C>аггрегирование входит в число основных парадигм ООП?
Агрегирование никакого отношения к ООП не имеет. Агрегирование можно реализовать на ООП. Что характерно — в любой парадигме это самое агрегирование точно так же реализуется без каких либо проблем
Здравствуйте, Hard_Club, Вы писали:
H_C>аггрегирование входит в число основных парадигм ООП?
Нет, это один из приёмов объектно-ориентированного дизайна.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, velkin, Вы писали: V>Лично я считаю, что да. В книгах пишут про три кита ООП, инкапсуляция, наследование и полиморфизм.
Выбросьте эти книги.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, velkin, Вы писали:
H_C>>аггрегирование входит в число основных парадигм ООП?
V>Лично я считаю, что да. В книгах пишут про три кита ООП, инкапсуляция, наследование и полиморфизм. Однако агрегация, то есть агрегирование по ссылке, и композиция, агрегирования по значению, это способ конструировать новые классы на основе уже существующих. В классическом ООП выбор включения одного класса в другой обычно идёт из агрегации, композиции и наследования. Что это если не основа основ ООП?
Таки есть одна книжка, в которой автор добавляет четвертого кита: композицию.
Вот она на Озоне: https://www.ozon.ru/context/detail/id/26036833/
Объектно-ориентированное мышление.
Книжка весьма неплоха — для приведения в порядок системы понятий ООП у начинающего программиста.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Hard_Club, Вы писали:
H_C>Что такое OCP?
Open Close Principle (или Oracle Certified Professional )
H_C>И откуда известно, что это парадигмы?
От изобретателей этих самых парадигм и авторов соответствующих книжек.
От парадигм (произносить с придыханием) на самом деле очень много пользы:
— она придает вес новой технологии и ее евангелистам, что положительно сказывается на их доходах,
— она дает возможность задавать умные вопросы на собеседовании. Нечего спросить кандидата? Смело давай ему с пяток аббревиатур типа OCP и требуй их расшифровать!
— заполняет неловкие паузы в разговоре за кружкой пива. Не о чем поговорить? Давай поговорим о новой парадигме XXX в программировании на YYY и чем это лучше ZZZ,
— т.к. некоторые парадигмы противоречат друг-другу, то знание большого количества парадигм всегда отличный повод доказать свою правоту или, наоборот, ошибку коллеги.
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, Hard_Club, Вы писали:
H_C>>аггрегирование входит в число основных парадигм ООП?
IT>Другими словами входит ли одна парадигма в другую?
Ну можно ещё пообсуждать количество демонов на острие иглы.
Здравствуйте, Hard_Club, Вы писали:
H_C>Так это все из SOLId. Это вроде принципы, а не парадигмы
А еще есть одно отличное слово — "концепция".
Ну а если серьезно, то прежде чем отвечать на вопросы "Является ли аггрегирование парадигмой ООП" нужно хорошо понимать значение слова парадигма.
Вот общее определение(применительно к науке):
совокупность теоретических и методологических положений, принятых научным сообществом на известном этапе развития науки и используемых в качестве образца, модели, стандарта для научного исследования, интерпретации, оценки и систематизации научных данных, для осмысления гипотез и решения задач, возникающих в процессе научного познания. Неизбежные в ходе научного познания затруднения то или иное сообщество ученых стремится разрешать в рамках принятой им парадигмы. Так, в свое время ученые стремились интерпретировать новые эмпирические данные науки в рамках механистического мировоззрения, абсолютизировавшего представления классической механики, представлявшего собой некоторую П. Революционные сдвиги в развитии науки связаны с изменением П.
Вот применительно к программированию (Джесси Рассел «Парадигма программирования»)
Парадигма программирования — это совокупность идей и понятий, определяющих стиль написания программ. Парадигма в первую очередь определяется базовой программной единицей и самим принципом достижения модульности программы. В качестве этой единицы выступают определение (декларативное, функциональное программирование), действие (императивное программирование), правило (продукционное программирование), диаграмма переходов (автоматное программирование) и др. сущности. В современной индустрии программирования очень часто парадигма программирования определяется набором инструментов программиста, а именно, языком программирования и используемыми библиотеками.
Здравствуйте, os24ever, Вы писали:
LVV>>Книжка весьма неплоха — для приведения в порядок системы понятий ООП у начинающего программиста.
O>Непонравилося.
O>Дошёл до строки: O>
"Объекты — это строительные кубики программ".
O>И стёр с компа. Реклама гербалайфа какая-то.
Возможно — это "творчество" переводчика?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, LaptevVV, Вы писали: LVV>Возможно — это "творчество" переводчика?
Скорее всего в оригинале так и было — objects are the software building blocks.
Жанр инженерного булшиттинга изобретён вовсе не у нас
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Hard_Club, Вы писали:
H_C>аггрегирование входит в число основных парадигм ООП?
Во-первых, агрегирование (с одной г) — это прием, а не парадигма.
Во-вторых, этот прием присутствует практически во всех парадигмах, где разрешено одно включать в другое.