Текущий архив: 2006.04.16;
Скачать: CL | DM;
Вниз
Классы... Найти похожие ветки
← →
Loginov Dmitry © (2006-03-24 14:10) [0]Пытаюсь я убедить друга писать на классах. Возник вот такой диалог:
Я: Диман, ну ты как счас, пишешь на классах.
Д: Нет
Я: А че так? Ты же вроде делаешь сложный дипломный проект, в котором есть куча графических объектов, и все их можно перемещать, менять размеры и прочие атрибуты. Тут само собой напрашивается объектно-ориентированное программирование.
Д: Да не... ООП здесь совершенно не нужно.
Я: Как не нужно??? Твоя задача весьмя сложная, и применение классов позволит существенно сократить время разработки, увеличить надежность и читабельность кода. Может ты просто не умеешь с ними работать? :)
Д: Умею я с ними работать конечно же! Работал. Не понравилось. Гемор один с ними. И нафиг мне засорять свой код всякими классами? У меня одна и таже процедура, к примеру, применяется для перемещения любого графического объекта, а у меня их целых 8 типов. В случае с классами пришлось бы создавать 8 классов - по одному на каждый тип объекта, и в каждом классе создавать отдельную процедуру для перемещения соответствующего объекта.
Я: Брось... Зачем создавать одну и ту же процедуру в каждом классе, ведь есть же такая технология, как наследование. Я делаю вывод, что ты просто не умеешь работать с классами!
Д: Опять ты за свое! Умею... Умею! Просто на самом деле это вешь ненужная, и практически бесполезная... для меня по крайней мере. Я сделал немало сложных разработок на Delphi и нигде не возникла потребность использовать классы. Я даже не могу себе представить, где бы я мог их применять.
Я: Мдя... клинический случай однако :)
Д: А ты думаешь на Мастерах многие применяют классы? Готов поспорить что большая часть посетителей форума и потрепаловки в том числе вообще не разрабатывают свои классы. Вот ДРОН например написал несколько проектов с 3-D графиков - и без всяких классов. И продает такие программы, и покупают их.
Я: Хм... ну ладно... Создам пожалуй ветку в Потрепаловке. Только я заранее убежден, что 90% ответивших пишут на классах. Если кто и не пишет на классах, то это в основном только зеленые новички, которые сюда постить скорее всего не будут, так как свое ИМХО они не посчитают особенно ценным.
Ну вот такой диалог получился.
В общем, если есть тут специалисты, кто старается обойтись без классов, выскажите свое мнение (в смысле почему вы не используете классы).
← →
Kolan © (2006-03-24 14:18) [1]старается обойтись без классов
Типа самоцель такая...
Опять ты за свое! Умею... Умею! Просто на самом деле это вешь ненужная, и практически бесполезная... для меня по крайней мере. Я сделал немало сложных разработок на Delphi и нигде не возникла потребность использовать классы. Я даже не могу себе представить, где бы я мог их применять.
Бред какой-то...
← →
Гаврила © (2006-03-24 14:20) [2]А без классов - это как?? в смысле и формы не создаются?
← →
Ega23 © (2006-03-24 14:22) [3]
> Я сделал немало сложных разработок на Delphi и нигде не
> возникла потребность использовать классы.
Form1 и Button1 это, конечно-же, не классы (точнее не объекты). Это, блин, просто форма и кнопка...
← →
Думкин © (2006-03-24 14:23) [4]Из коридора противно потянуло медициной. Вскоре появились и ребята в белых халатах, в руках у них было серое напоминащее смирительную.
Без классов на Дельфи - а зачем?
← →
Ega23 © (2006-03-24 14:25) [5]
> Без классов на Дельфи - а зачем?
см. [1]
> Типа самоцель такая...
>
← →
Джо © (2006-03-24 14:26) [6]> Без классов на Дельфи - а зачем?
Потому, что "с классами" — не получается :)
← →
Sandman25 © (2006-03-24 14:27) [7]Конечно, дельфисты пишут на классах. Новая форма - новый класс, новый датамодуль - новый класс, новый Thread - новый класс. :)
← →
Игорь Шевченко © (2006-03-24 14:30) [8]Sandman25 © (24.03.06 14:27) [7]
Неверно. Можно написать без классов сколько угодно полезных и функциональных программ на Delphi.
← →
Manic Mechanic © (2006-03-24 14:30) [9]Без классов не могу :( 100% используемых мною классов - наследники в 3-5 поколении. Даже кнопки.
← →
Marser © (2006-03-24 14:32) [10]Около двух лет назад я писал о своём товарище, перепутавшем ООП с модульностью. Меня тогда здесь отпинали ногами, усмотрев где-то самолюбование...
> [4] Думкин © (24.03.06 14:23)
> Из коридора противно потянуло медициной. Вскоре появились
> и ребята в белых халатах, в руках у них было серое напоминащее
> смирительную.
>
> Без классов на Дельфи - а зачем?
Не, это тихий, таких не имеем права :-))
← →
Kolan © (2006-03-24 14:33) [11]Надо вызвать ДРОНа пусть он отвечает почему это не испольсует классы.
Да еще и других учит... :)
← →
Ketmar © (2006-03-24 14:34) [12]>Sandman25 © (24.03.06 14:27) [7]
>новый Thread - новый класс
ни фига подобного. BeginThread() %-)
а "бесклассоый" паренёк, судя по всему, радостно пишет на апи и спользует дельфи как макроассемблер.
← →
Loginov Dmitry © (2006-03-24 14:35) [13]Под программированием с классами имелась ввиду ручная разработка собственных классов.
← →
Kolan © (2006-03-24 14:37) [14]Loginov Dmitry © (24.03.06 14:35) [13]
Под программированием с классами имелась ввиду ручная разработка собственных классов.
Да хоть ножная.
Delphi - ОБЪЕКТНО ориентиованый язык. Поэтому на классах все основанно.....
← →
Ketmar © (2006-03-24 14:38) [15]>Loginov Dmitry © (24.03.06 14:35) [13]
а вовсе не обязательно. можно то же самое эмулировать на "чистых процедурах". только смысл? да, вот у меня в "управлялке винампом" нет ни одного класса. так и не надо. а вот в TakChat цельный компонент сделан. и классов есть. как уже говорилось: писать следует так, чтобы код легко читался и сопровождался.
← →
Esu © (2006-03-24 14:41) [16]Можно конечно закинуть целиком VCL, создавать все формочки ручками используя winapi вызовы... Неясно только откуда ж мазохизм такой :)
Есть правда + в том, что при таком подходе можно безболезненно или с минимальными потерями перейти на freepascal и быть чистым перед законом :)
← →
Marser © (2006-03-24 14:43) [17]> Delphi - ОБЪЕКТНО ориентиованый язык. Поэтому на классах
> все основанно.....
Не всё. Факт.
← →
Nic © (2006-03-24 14:43) [18]Считаю, что имеет смысл использовать смешанный стиль. Где-то удобненее разработать класс, где-то и процедурный стиль - очень эффективен.
← →
Kolan © (2006-03-24 14:44) [19]Marser © (24.03.06 14:43) [17]
Ладно, я не мастер конечно, а на чем все основанно?
← →
Игорь Шевченко © (2006-03-24 14:46) [20]
> Под программированием с классами имелась ввиду ручная разработка
> собственных классов.
Да хоть ножная. Delphi позволяет создавать программы и с классами и без классов и с ручной разработкой и с разработкой головой, что вообще-то предпочтительнее.
Сделать можно все. ООП тоже не серебряная пуля.
← →
jack128 © (2006-03-24 14:54) [21]Kolan © (24.03.06 14:37) [14]
Delphi - ОБЪЕКТНО ориентиованый язык. Поэтому на классах все основанно.....
дельфи - не ЧИСТЫЙ ОО язык. Он поддерживает, как ОО, так и процедурное программирование.
← →
Marser © (2006-03-24 14:56) [22]> [19] Kolan © (24.03.06 14:44)
> Marser © (24.03.06 14:43) [17]
>
> Ладно, я не мастер конечно, а на чем все основанно?
Присоединяюсь к [21] и [20].
В Делфи можно обойтись без классов. А вот в Яве, наколько я знаю, никак.
← →
КаПиБаРа © (2006-03-24 15:01) [23]Речь идет о целесообразности применения процедурного программирования вместо ООП при решении конкретной задачи, в частности при разработке графического редактора.
← →
Sandman25 © (2006-03-24 15:05) [24]Игорь Шевченко © (24.03.06 14:30) [8]
Конечно. В Delphi можно даже ассемблерные программы писать :)
← →
Игорь Шевченко © (2006-03-24 15:09) [25]Sandman25 © (24.03.06 15:05) [24]
Можно, только не программы, а вставки. И что ?
← →
TUser © (2006-03-24 15:13) [26]Есть задачи, которые неудобно будет решать с применением классов. Гораздо удобнее - простой структурный подход. Хотя, граф. движок я бы так делать не стал.
У меня на Delphi своих классов почти нет. VCL - это да, если надо оконное что-то. А для реализации алгоритма классы почти никогда не требуются. Иногда бывает удобно, но редко.
Парадокс - ООП использую на JavaScript"е. А на Delphi почти все далаю структурным программированием.
← →
Sandman25 © (2006-03-24 15:25) [27]Игорь Шевченко © (24.03.06 15:09) [25]
Ничего. Я могу и java-программу в Delphi написать и отправить ее на компиляцию и выполнение через меню Tools, но Вы же не будете говорить, что в Delphi можно работать без слова begin.
А если еще вспомнить про позиционирование как RAD, то вообще смешно получится.
Delphi без классов примерно как мерседес в качестве тележки, привязанной к лошади. Использовать можно, но крайне неэффективно.
ЗЫ. И не надо мне говорить про сервисы без классов и прочее. Обсуждаемый участник явно не сервисы пишет, иначе он бы так и сказал.
← →
Игорь Шевченко © (2006-03-24 15:27) [28]Sandman25 © (24.03.06 15:25) [27]
> Delphi без классов примерно как мерседес в качестве тележки,
> привязанной к лошади. Использовать можно, но крайне неэффективно.
>
Я бы не стал так категорично утверждать. При наличии хорошей процедурной библиотеки - а почему бы и не без классов ?
← →
Alkid © (2006-03-24 15:28) [29]
> Delphi - ОБЪЕКТНО ориентиованый язык. Поэтому на классах
> все основанно.....
program HelloWorld
begin
writeln("Hello,world!");
end;
Где тут классы? :)
Что же именно разработки своих классов, то я уже настолько прочно
привык разрабатывать с помощь. ООП, что уже о программе размышляю исключительно в объектных категориях, даже если это потом надо будет реализовать процедурно. Если же можно использовать ООП (когда я
пишу на Delphi, C++, C#), то я определённо использую ООП на всю катушку.
← →
Sandman25 © (2006-03-24 15:31) [30]Игорь Шевченко © (24.03.06 15:27) [28]
Я бы не стал так категорично утверждать. При наличии хорошей процедурной библиотеки - а почему бы и не без классов ?
А я и некатегоричен. Наоборот, поддерживаю Вас: при наличии хорошей процедурной библиотеки - а почему бы и не без Delphi? :)
← →
Alkid © (2006-03-24 15:38) [31]
> А я и некатегоричен. Наоборот, поддерживаю Вас: при наличии
> хорошей процедурной библиотеки - а почему бы и не без Delphi?
> :)
А наличие хорошего ассемблера отменяет необходимость языков высокого уровня. А наличие паяльника с радиодеталями делает совсем необяъательным компьютер. :) Только как-то это уже неудобно получается :)
← →
Игорь Шевченко © (2006-03-24 15:40) [32]Sandman25 © (24.03.06 15:31) [30]
А удобно, знаете ли, уважаемый Александр. Подсказки всякие в редакторе, например, скорость компиляции высокая.
← →
Бурундук © (2006-03-24 15:57) [33]Как гласит старая народная мудрость,
настоящий програмист напишет программу на фортране на любом языке.
Даже на Java.
:-)
← →
Sandman25 © (2006-03-24 15:58) [34]Игорь Шевченко © (24.03.06 15:40) [32]
>Подсказки всякие в редакторе.
Особенно в Delphi 3. Ни CTRL+SHIFT+C, ни CTRL+SHIFT+стрелки, ни даже CTRL+клик мышкой.
>, например, скорость компиляции высокая.
Вопрос. Если компилятор от Delphi запустить не из среды, а из командной строки, как изменится скорость компиляции?
← →
Игорь Шевченко © (2006-03-24 16:21) [35]Sandman25 © (24.03.06 15:58) [34]
Тебе не кажется, что ты все время тему несколько в оффтопик уводишь ?
← →
Sandman25 © (2006-03-24 16:41) [36]Игорь Шевченко © (24.03.06 16:21) [35]
Нет, не кажется. Программировать GUI без классов равносильно езде на мерседесе, запряженном лошадью. Приятных выходных :)
← →
Игорь Шевченко © (2006-03-24 16:49) [37]Sandman25 © (24.03.06 16:41) [36]
Я извиняюсь, конечно, но кроме GUI есть еще ряд областей для прикладного и не только программирования.
Спасибо, взаимно.
← →
iZEN © (2006-03-24 17:13) [38]"На самом деле не важно как рисовать и на чём" —
http://www.triz-ri.ru/themes/method/creative/creative52.asp
← →
iZEN © (2006-03-24 17:29) [39]>Бурундук © (24.03.06 15:57) [33]
>Как гласит старая народная мудрость, настоящий програмист напишет программу на фортране на любом языке. Даже на Java. :-):)
public static class Program {
public static void main(String[] args) {
/* пишите что хотите */
...
}
}
Графические системы (ГИС, например) имеют векторный формат контента отображения. Но использование прямого отображения объектов контента на программные объекты-сущности, как правило, неэффективно и сильно влияет на быстродействие, объём памяти в этом случае используется слишком неумеренно. Про полиморфизм приходится часто забывать как о страшном сне, влияющем на быстродействие.
К счастью, в ООП существуют ОБРАЗЦЫ_ПРОЕКТИРОВАНИЯ.
В типичном случае любую векторную сцену, насыщенную отдельными элементами (фигурами), даже текст в стилистическом оформлении можно отобразить в программную объектную модель (для этого есть образец Flyweight-Приспособленец), и всё будет эффективно как по памяти, так и по скорости. Не все программисты, особенно начинающие, могут воспринять эту технику сразу, поэтому отказываются от ООП в пользу структурного программирования.
← →
Nic © (2006-03-24 17:41) [40]iZEN © (24.03.06 17:29) [39]
Можно поподробнее? При написании ГИСа оптимальнее юзать ООП? Делитесь опытом :)
Страницы: 1 2 вся ветка
Текущий архив: 2006.04.16;
Скачать: CL | DM;
Память: 0.58 MB
Время: 0.049 c