All streams
Search
Write a publication
Pull to refresh
13
0
Сергей Роговцев @lair

Архитектор

Send message
А что пробовать-то? Это стандартная программа обучения в музыкальном училище, второй курс самое позднее.

Другое дело, что не надо путать «творческую деятельность» и произведение искусства.
Ну, я, по крайней мере, написал одну работающую систему описания критериев.
Вот только ООП здесь уже не при чем.

Вам захотелось сделать — вы сделали шаблонами. Захотелось — сделали наследованием. Захотелось — чем-то еще. Нет целостности подхода.
Вы ошибаетесь дважды.

Первый раз — в том месте, где думаете, что сочинять мелодию — это более творческий процесс, чем «соединять аккорды». И то и другое — может быть как творчеством, так и банальной техникой.

Второй раз — в том месте, где думаете, что творческому процессу нельзя научить. Можно. Кафедра композиции для этого придумана.
Да ну? На указателях получилось бы стандартное решение с наследованием Or и And от Bool. И все. Никакого цирка, простое и работающее решение.
Автомат — не ошибается. Ошибаются люди, которые его программируют.
Я знаю, спасибо. Как это связано с моим комментарием?
Конечно, «не». Если бы делали для автомата, о выделении памяти бы не заботились — автомат не ошибается.
Нет, не вам одному.
Ну и написали бы на auto_ptr. Они сами удаляются, если я правильно доки читаю.
Вот я и говорю, что ради отказа от указателей вы парадигмы ООП послали к черту.
Понимаете ли, принимаемые вами решения (и стратегии, и отбрасывание наследования) как раз противоречат ООП (в особенности — отбрасывание наследования). А чем они обоснованы? Синтаксическими ограничениями, которые вы сам же себе и поставили.

Понимаете, ООП-решение этой задачи — нормальное дерево наследования. А то, что делаете вы — это отказ от этого наследования ради использования смарт-пойнтеров или чего там еще. В то время, как в любом другом языке с нормальным динамическим выделением памяти, или у любого другого программиста, которому удобно писать выделение памяти по-другому, решение будет иным, нежели у вас.
Потому что ваша задача — не ООП, а на синтаксис языка. «Как так извернуться, чтобы не передавать указатель».
Так вот. Все, чем вы занимались в статье — это обходили свое нежелание сделать new.
Ну вот понимаете, чтобы сделать систему критериев, достаточно нескольких классов, описывающих выражения в этой системе. А у вас зачем-то — шаблоны, стратегии, мучения с кучей конструкторов…
«создавать классы без выделения памяти» — это что за ересь? Нельзя ничего создать, не выделив память.
Не «в ООП-стиле», вот в чем дело.

ООП-решение — это просто построить систему объектов и их отношений. Ваше решение к этому имеет очень опосредованное отношение.
Если, что вас обманули. Интервал — это расстояние между двумя звуками. Интервалы бывают мелодические (последовательные) и гармонические (одновременные).

Не зря сверху написано «изобразить гармонический интервал».
Я, в принципе, могу еще потыкать в дырки в вашей реализации, но самую главную указали выше — expression trees придумали не просто так. И на них это все прекрасно реализуется.

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

Вот и все.

Information

Rating
Does not participate
Location
Montreal, Quebec, Канада
Date of birth
Registered
Activity