![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
DenRip |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 12.6.2007 Репутация: нет Всего: нет |
Присутствуют много тем, по обсуждению классов, что это такое, допустим разобрались.
Теперь назревает вопрос В каких случаях необходимо объявлять классы??? Может у кого примерчик есть? ![]() |
|||
|
||||
BaD_SeCt0R |
|
|||
![]() Lazy Coder ![]() ![]() Профиль Группа: Участник Сообщений: 432 Регистрация: 9.10.2006 Где: Анапа Репутация: нет Всего: 18 |
Ну уж совсем из ряда вон вопрос... Delphi Help! F1!
-------------------- Кто владеет информацией - владеет миром. (С) Френсис Бэкон. |
|||
|
||||
DenRip |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 12.6.2007 Репутация: нет Всего: нет |
А чо из ряда вон то???? понять то понял, а зачем они не понял........
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 34 Всего: 459 |
Классы нужно использовать тогда когда есть наборы данных объединенные логически, т.е. описывают некоторую сущность физическую или абстрактную. Для взаимодействия сущностей вводят методы.
Короче классы нужны когда обработка данных нетривиальна и требует много контроля за порядком их преобразования, правильностью операций, и других условий. Фактически любая более менее сложная программа должна писаться при помощи ООП, просто потому, что так легче следить за тем, что где и как преобразуется. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
EvilsInterrupt |
|
|||
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: нет Всего: 9 |
DenRip, Дали тебе задачу, к примеру написать кусок кода, создается Монстр и возвращается в ф-ции, что ты будешь делать?
1) Описать структуры, к примеру Голову, Туловище, Хвост, Руки, Ноги 2) Написать методы: Прыгнуть, Куснуть, Ударить, Побежать к герою игры, Искать в лабиринте героя игры Ты вот прямо щас, можешь сказать, так что: "Я напишу все с первого раза и ниразу не ошибусь и все будет понятно!" ? Лично я нет, потому что слишком много надо ф-ций написать и еще черт знает что которого я не учел прямо щас, казалось бы написать п.2 и все, но приходит другой девелопер и говорит, а что у тебя монстр то головой не вертит? Приходит другой девелопер, а утебя монст че прыгать не может? Проходит время, ты смотришь модуль, а в нем 300 с лишним ф-ций и 500 структур, а багу надо поправить за день! Ты сумеешь за день в таком кол-ве ф-ций найти багу? Я нет, потому и применяю классы. Что же это дает то? А дает это то, что все ф-ции находятся в одном месте!!! Это как с dll-файлом, ты четко знаешь что с ядром работать надо через kernel32.dll, а с пользователем через user32.dll. Что было бы если бы все эти ф-ции в одной ЕДИННОЙ dll-файле были написаны? ООП: 1) Стуктурирует 2) Приучает мыслить объектами, т.е. когда тебе надо вывести мессагу бокс ты ищешь ее в user32.dll, а не в kernel32.dll !!! С классами аналогично, чтобы вывести на экран чекбокс, а ищу его нигде нить в TCheckBox ! 3) Позволяет скрыть не нужную инф-цию с глаз! Нафига тебе прямо щас знать, как происходит коннект к базе данных? Работает же, вот и используй это! А уж если не получается ищи того кто сделал этот коннект криво! 4) При часто используем коде, ты можешь вынести в ф-ции и потом в новых проектах их вызывать, не спорю логично! А что если их через чур много ? А что если новая от старой не значительно изменяется? Лично я пишу в базовом классе, а в потомке наследуюсь и никакой ctrl+c\ctrl+v я не применяю и не правлю это потом. Я это получаю автоматом и немножечко добавляю своего ;) 5) Может возникнуть так, что к каждой базе данных к примеру Oracle, MS SQL, MySQL нужно написать коннект, как напишешь? Ф-ции OracleConnect, хорошо что ты щас помнишь а через год в друг ты думаешь что она называется Oracle_Connect, а на самом деле она называется Ora_Connect, зачем лишнего помнить? Объяви в базовом коннект и в потомках их реализовывай или дай другу свой базовый, а он сделает. Через год у вас классы к тыще СУБД, а ты знаешь как коннектиться ))) Не хорошо ли это? Ты не ищешь первоначальные буквы Ora_ или MySQL_ или же MS_SQL_ или другое, ты четко шаришь раз Oraclе значит TOracle это работа с ним а Connect это чтобы коннектиться к нему и ты не утачняеш синтаксис !!! Таких мелочей слишком много, в итоге программер устает и успевает за день сделать меньше если он не применяет ООП. Минусы ООП: 1) Большой размер файла, но сорри у тебя сколько на винте места? МегаБайты? 2) Эффективность кода падает, но какой у тебя проц? Может на МегаГерцы? 3) Качать много, если человеку надо, убьется но скачает!!! Это сообщение отредактировал(а) EvilsInterrupt - 7.9.2007, 15:41 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |