Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
15-1143447194
Boogier
2006-03-27 12:13
2006.04.16
Не могу скачать Update для Delphi 7.


3-1140436796
Варяг
2006-02-20 14:59
2006.04.16
Прогр-ное создание индексного файла для FoxPro


2-1144061350
serg111111
2006-04-03 14:49
2006.04.16
Приложение в треере


2-1144061255
Gydvin
2006-04-03 14:47
2006.04.16
кординаты символа в RichEdit


15-1142945762
OutbacK
2006-03-21 15:56
2006.04.16
Проблема с мышкой в Винде (мышь: Logitech MX500)