Вопрос знатокам ООП. - страница 18

 

Виртуальные функции, это некий шаблон функции прописанный в базовом классе.  Конкретную реализацию приобретает лишь в классах наследниках. Виртуальными могут быть и классы. Виртуальные классы содержащие виртуальные функции называются "интерфейсами". Вместе они реализуют один из главных механизмов ООП - полиморфизм.

Только на практике, не понимаю куда это всунуть...

 
Georgiy Merts:

С чего бы это ? 

Глобальное ядро и ООП - это совершенно не исключающие друг друга вещи.

Как раз элементы в окнах должны быть инкапсулированны внутри классов окон, а не "Лежать на всеобщем обозрении". Как раз для того, чтобы никто не мог случайно "влезть не туда". Изменить одну переменную и ошибиться в ее расположении внутри гигантского глобального массива очень просто.  Запросить же нужный интерфейс, и потом изменить эту же переменную в том объекте, который нужен, и при этом ошибиться - куда сложнее.

Увы, исключающие. Глобальное ядро предполагает глобальную видимость, которая снимает необходимость

(1)В инкапсуляции кода. Зачем, если все доступно из любой точки?

(2) Перегрузку функций. Зачем, если проще выполнять работу в одной, делая результаты повсеместно видимыми и досупными?

(3)Полиморфизм. Зачем под одним шаблоном прятать разные реализации, если один блок может делать работу этих вариантов шаблона? Количество кода будет меньше, а синтаксис в разы проще.

Весь смысл ООП упирается в следующее:

1. Разгрузка памяти человека. (Плохо разгружает. Синтаксиса слишком много.) 

2. Распределение общей работы внутри команды (каждый знает кусок кода, следовательно, будут проблемы сборки и отладки).

3. Переносимость кода. (Это действительно плюс).

4. Маркетинг. Распостронение и продажа сред разработки, библиотек, через рекламу разных примочек.

 
Реter Konow:

Увы, исключающие. Глобальное ядро предполагает глобальную видимость, которая снимает необходимость

(1)В инкапсуляции кода. Зачем, если все доступно из любой точки?

(2) Перегрузку функций. Зачем, если проще выполнять работу в одной, делая результаты повсеместно видимыми и досупными?

(3)Полиморфизм. Зачем под одним шаблоном прятать разные реализации, если один блок может делать работу этих вариантов шаблона? Количество кода будет меньше, а синтаксис в разы проще.

Весь смысл ООП упирается в следующее:

1. Разгрузка памяти человека. (Плохо разгружает. Синтаксиса слишком много.) 

2. Распределение общей работы внутри команды (каждый знает кусок кода, следовательно, будут проблемы сборки и отладки).

3. Переносимость кода. (Это действительно плюс).

4. Маркетинг. Распостронение и продажа сред разработки, библиотек, через рекламу разных примочек.

Кому вы, и что хотите доказать? Что ООП - плохо, а куча всего в одном месте - хорошо? Это всё, для чего вы ветку эту создали? Или хотите опять потешить эго похвалами о вашей супер-памяти? Сдаётся мне, что это ваше альтер-эго. И не более.
Далее ветка теряет практический смысл - её направленность можно озаглавить как "Смотрите какой я". Полезности - ноль.

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

 
Artyom Trishkin:

Кому вы, и что хотите доказать? Что ООП - плохо, а куча всего в одном месте - хорошо? Это всё, для чего вы ветку эту создали? Или хотите опять потешить эго похвалами о вашей супер-памяти? Сдаётся мне, что это ваше альтер-эго. И не более.
Далее ветка теряет практический смысл - её направленность можно озаглавить как "Смотрите какой я". Полезности - ноль.

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

Вы опять за старое?)) Я уж думал, прекратили вы свой троллинг в моих ветках.  Не можете удержаться, что бы на личности не перейти. Ну никак...))

Когда человек переходит на личности, значит что ему по делу сказать нечего. Видимо, аргументы железобетонны.
 

Аргумент в пользу ООП простой: Людям это нужно.

На этом, можно закончить тему.

 
Реter Konow:

Увы, исключающие. Глобальное ядро предполагает глобальную видимость, которая снимает необходимость

(1)В инкапсуляции кода. Зачем, если все доступно из любой точки?

(2) Перегрузку функций. Зачем, если проще выполнять работу в одной, делая результаты повсеместно видимыми и досупными?

(3)Полиморфизм. Зачем под одним шаблоном прятать разные реализации, если один блок может делать работу этих вариантов шаблона? Количество кода будет меньше, а синтаксис в разы проще.

Весь смысл ООП упирается в следующее:

1. Разгрузка памяти человека. (Плохо разгружает. Синтаксиса слишком много.) 

2. Распределение общей работы внутри команды (каждый знает кусок кода, следовательно, будут проблемы сборки и отладки).

3. Переносимость кода. (Это действительно плюс).

4. Маркетинг. Распостронение и продажа сред разработки, библиотек, через рекламу разных примочек.

Так это разные вещи.

У меня в любом эксперте (в той же Лиге) - есть объекты с  глобальной зоной видимости.

Твое же ядро можно представить в виде класса, который снабжен кучей функций - геттеров-сеттеров, в результате - это будет вполне себе "ООПшно", но с глобальным доступом. Хотя, конечно, без главных достоинств ООП - инкапсуляции, наследования и полиморфизма.

Насчет того, во что упирается ООП - первое надо дополнить не только разгрузкой памяти (и разгрушает очень хорошо), а еще и разгрузкой поддержки и модификации кода. И, кроме того, за счет повторного использования наработок, которые в ООП-оформлении - куда легче использовать, чем без него.  Кстати, "4 - маркетинг" - это как раз следствие этого самого гораздо более легкого использования.

 
Artyom Trishkin:
   

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

Артем, а я вот завидую памяти Петера...

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

 

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

чисто по теме содержанию топика: Что такое анти-паттерны?

 
Igor Makanu:

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

чисто по теме содержанию топика: Что такое анти-паттерны?

Вторая статья полезнее и, как мне кажется, обязательна к прочтению всеми, независимо от того, какой стиль программирования они исповедают.
 
Реter Konow:

Виртуальные функции, это некий шаблон функции прописанный в базовом классе.  Конкретную реализацию приобретает лишь в классах наследниках. Виртуальными могут быть и классы. Виртуальные классы содержащие виртуальные функции называются "интерфейсами". Вместе они реализуют один из главных механизмов ООП - полиморфизм.

Только на практике, не понимаю куда это всунуть...

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

конкретная реализация вполне может быть и в базовом классе. или не быть (если функция чисто виртуальная)

классы виртуальными быть не могут, могут быть абстрактными. есть виртуальное наследование, но тебе этим голову вообще забивать не надо.

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

виртуальные функции только часть полиморфизма - динамический полиморфизм. перегрузка и шаблоны это статический.

всунуть это можно везде, просто ты это все пропускаешь через свое плоское табличное мышление