[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: функции или классы? подскажите
Shmalekz
добрый день, у меня такой вопрос по теме приимуществ классов над функциями.

предположим есть файл с 100 функций (назовём его fun.php), который определён (require_once) для всех страниц кода

будет ли быстрее работать код если подключать этот файл с функциями через классы?

т.е. отсортировать все функции в файле fun.php, создать для каждой группы функций класс и подключать в коде те же функции через классы

извиняюсь за угловатую формулировку



Спустя 19 минут, 11 секунд (10.06.2009 - 13:04) Mizka написал(а):
нет. при использовании ООП тратятся ресурсы на создание обьектов в оперативке и тд. работает медленнее.

Спустя 19 минут, 25 секунд (10.06.2009 - 13:23) Shmalekz написал(а):
не совсем Вас понял, пож., объясните детальней

Спустя 5 минут, 27 секунд (10.06.2009 - 13:29) vasa_c написал(а):
Если для вас под преимуществом понимается только "будет ли быстрее работать", то нет, такого преимущества у классов нет.

Спустя 1 час, 8 минут, 42 секунды (10.06.2009 - 14:37) glock18 написал(а):
Вообще объекто-ориентрованный подход к программированию, частью которого и являются классы, однозначно являет менее быстродейственные системы, чем процедурный подход (читай функции). Это плата за удобный контроль над кодом - при верном проектировании, ООП позволяет снизить сложности по поддержке ПО в разы и десятки раз.

Спустя 3 часа, 17 минут, 9 секунд (10.06.2009 - 17:54) twin написал(а):
Цитата
в разы и десятки раз.

Громко сказано biggrin.gif А кто и как мерял эти разы и десятки? Все зависит только от архитектуры и больше ни от чего. Можно процедурно написать код легкий и понятный, совершенно контролируемый. А можно с ООП такого наворотить, что сам не разберешься.
Классы очень удобная весч, но только там, где действительно необходима. При создании какого то функционала, который используется повсеместно или часто, причем это сложный функционал, с различными действиями и результатами. Иначе достаточно функции. Допустим классом удобно сделать постраничку. Что бы одной - двумя-тремя строчками обеспечить постраничный вывод в любом месте и в любом виде. Колонками, рядами, вложенная постраничка и прочее. Стоит один раз задуриться или найти готовый и пользовать, не тыкаясь каждый раз. Или та же отправка почты. Или загрузка файлов. А делать одну страницу, целиком и полностью на ООП, а вторую тоже, где совсем другие классы и методы - по меньшей мере нерационально. Кроме того, есть хитрый способ. Пишешь функцию (или набор функций) в отдельный файл и подключаешь там где надо. Тот же ООП по сути... smile.gif

Спустя 1 час, 53 секунды (10.06.2009 - 18:55) Sylex написал(а):
static function approxim. equal function

Спустя 4 часа, 40 минут, 15 секунд (10.06.2009 - 23:36) glock18 написал(а):
Цитата (twin @ 10.06.2009 - 14:54)
А можно с ООП такого наворотить, что сам не разберешься.

с этим согласен, но я говорил о
Цитата (glock18 @ 10.06.2009 - 11:37)
верном проектировании

Не спорю, что в процедурном можно. ну да я посмотрю каково это будет писать большую систему на процедурках. такие уже есть, конечно, но только подумать, что КАЖДАЯ функция на этом огромном пространстве имен должна иметь уникальное имя (да это породит кучу и еще кучу проблем по сопровождению кода). Что функциями можно в какой-то степени эмулировать классы, не спорю.

twin, ты сам привел ряд примеров, которые стоит делать на классах.

Цитата (Sylex @ 10.06.2009 - 15:55)
static function approxim. equal function

так и есть. BTW approxim. equal is not equal.

Спустя 6 минут, 7 секунд (10.06.2009 - 23:42) twin написал(а):
Чесно говоря, не представляю себе такую систему, в которой нужно 5000 функций задействовать одновременно. Вот и архитектура. Если система модульная, то и пусть они называются одинаково, кому это мешает. А если все пихать в одну кучу, да еще и грузить в оперативку одновременно, то какая тут архитектура... Тут и ООП не поможет.

Спустя 9 часов, 36 минут, 38 секунд (11.06.2009 - 09:18) glock18 написал(а):
Ну тут и не нужно 5000. Все навсего - функция get. Будет размножена для каждой только возможной сущности. При этом каждый раз будет именована под сущность. Если расчитывать на то, что какие-то функции не будут одновременно в памяти и называть их одинаково, то это тоже приведет к ошибкам в конце концов.

Я в целом согласен, что процедурный подход тоже может быть хорошо структурирован, а в ООП может быть нагажено. Другое дело, что с нашими разработчиками, такими какие они есть, расчитывать на хорошо написанное большое приложение (вдобавок, с меняющимися требованиями во время разработки) в процедурном стиле - утопия. На классах то не особо получается, но уж хотя бы появляется какая-то надежда, что ЭТО будет хоть как-то управляемо.

Спустя 3 часа, 31 минута, 10 секунд (11.06.2009 - 12:49) Shmalekz написал(а):
большое спасибо за дискусию по вопросу
узнал что хотел

остаюсь на процедурах smile.gif

Спустя 6 часов, 48 минут, 36 секунд (11.06.2009 - 19:38) kirik написал(а):
Цитата (Shmalekz @ 11.06.2009 - 04:49)
остаюсь на процедурах

не верный вывод wink.gif


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.