|
|
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
Добрый день! Разъясните доходчиво плиз следующее: Никак не могу перейти на ООП на PHP. В принципе классы я понимаю, я не понимаю реального преимущества. Можно ли какой-нибудь пример из жизни, а то всё что нагуглил - абстрактно ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 10:45:50 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
Процедурное программирование лучше подходит для случаев, когда важны быстродействие и используемые программой ресурсы, но требует большего времени для разработки. Объектное — когда важна управляемость проекта и его модифицируемость, а также скорость разработки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 11:13:18 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
Спасибо! Но теории я начитался, по факту не вижу ни одного момента где ООП выигрывает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 11:17:12 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
Wrun я не понимаю реального преимущества. Можно ли какой-нибудь пример из жизниПреимущество будет, когда в проекте несколько миллионов строк кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 11:18:35 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
?Wrun я не понимаю реального преимущества. Можно ли какой-нибудь пример из жизниПреимущество будет, когда в проекте несколько миллионов строк кода. Такие проекты - фтопку. Однозначно. На самом деле, ооп в пхп используется именно для программирования "чёрных ящиков". Иными словами, если использовать посторонние компоненты, написанные другими для других - то без этого никак. Если писать свои собственные, чтобы было удобно использовать другим программистам - опять таки да. Никаких других причин использования ооп в пхп нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 11:45:51 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
ShSerge?пропущено... Преимущество будет, когда в проекте несколько миллионов строк кода. Такие проекты - фтопку. Однозначно. На самом деле, ооп в пхп используется именно для программирования "чёрных ящиков". Иными словами, если использовать посторонние компоненты, написанные другими для других - то без этого никак. Если писать свои собственные, чтобы было удобно использовать другим программистам - опять таки да. Никаких других причин использования ооп в пхп нет. Вот это мне понравилось, благодарю ShSerge! Кажется пришло понимание! Я просто всегда использовал только свои собственные разработки, и не имел проблем. Теперь задумаюсь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 11:49:01 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
WrunСпасибо! Но теории я начитался, по факту не вижу ни одного момента где ООП выигрывает Я не знаю ПХП, поэтому постараюсь придумать более-менее общий пример. Допустим в базе данных ты хранишь координаты геометрических фигур-ролигонов. Твой скрипт должен получить 10 рандомных фигур и посчитать их площадь и периметр. Не используя ООП ты напишешь функции для получения массива координат, вычисления площади и периметра, потом пройдешься циклом по координатам и получишь еще два массива: с площадями и с периметрами и все эти данные передашь в скрипт, который у тебя генерит HTML-ку и в этом скрипте опять циклами будешь доставать значения. Используя ООП ты напишешь класс, который инкапсулирует координаты, функцию вычисления площади и периметра. И одним циклом ты получишь один массив объектов передавая конструктору класса координаты. Проход по этому массиву даст объекты с методами, которые вернут то что тебе надо. Если в дальнейшем, у тебя изменится ТЗ, и кроме площади и периметра тебе нужно будет вычислять еще, например, момент инерции, то ты просто добавишь один метод в класс. И все. С функциями тебе придется создавать не только еще одну функцию, но и еще один массив и переделывать логику извлечения рассчитанных данных в HTML. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 11:53:28 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
Жырный Тони...Допустим в базе данных ты хранишь координаты геометрических фигур-ролигонов. Твой скрипт должен получить 10 рандомных фигур и посчитать их площадь и периметр... Это может без проблем сделать сервер БД. Даже никаких программ писать, кроме грамотного селекта на SQL не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 11:58:43 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
ShSergeЖырный Тони...Допустим в базе данных ты хранишь координаты геометрических фигур-ролигонов. Твой скрипт должен получить 10 рандомных фигур и посчитать их площадь и периметр... Это может без проблем сделать сервер БД. Даже никаких программ писать, кроме грамотного селекта на SQL не нужно. Видимо ты не пропускаешь возможности поумничать. Тогда сделаем оговорку, у нас база на Sqlite. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 12:06:16 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
Жырный ТониShSergeпропущено... Это может без проблем сделать сервер БД. Даже никаких программ писать, кроме грамотного селекта на SQL не нужно. Видимо ты не пропускаешь возможности поумничать. Тогда сделаем оговорку, у нас база на Sqlite. Троллить меня не стòит. Кстати, на SQLite я достаточно хорошо умею писàть. Как раз на нём, это делается очень просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 12:10:03 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
авторНа самом деле, ооп в пхп используется именно для программирования "чёрных ящиков". Иными словами, если использовать посторонние компоненты, написанные другими для других - то без этого никак бред. черный ящик можно писать как угодно. главное что у него есть вход и выход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 13:09:32 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
Wrun, ООП стоит применять там где появляются объекты (капитан очевидность))) Пример: У вас на сайте есть авторизация. Авторизованные пользователи имеют разные уровни доступа к разным страницам, имеют свои настройки разные, аватарки, подписи, координаты для связи и т.д. В процедурном стиле - для обслуживания всего этого хозяйства, вы напишите кучу функций. для хранения прочитанных данных о пользователях будут использоваться наверное какието массивы, переменные, списки и т.д. проблема в том, что поддерживать все это геморойно. данные разрозненны, хранятся в разных местах, вытаскиваются разными функциями. все это нужно помнить самому, а лучше хорошо описать в документации.... Если использовать ООП, то сущности автоматически выделятся в отдельные классы. Все функции обработки, чтения и изменения будут лежать внутри соответствующих классов, а не разбросаны гдето по проекту. зная список методов класса сразу видно что вообще можно сделать а что нельзя с объектом. тоесть даже без документации уже многое интуитивно понятно и сгруппировано. в этом и есть один из плюсов. а есть и другие. связанные с простотой наследования функциональности, разделение доступа к данным и методам(private,public....) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 13:13:40 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
ScareCrowбред. черный ящик можно писать как угодно. главное что у него есть вход и выход. Можно и как угодно. Самое главное, если есть вход и выход, а в исходном коде разбираться не надо. Это и называется "чёрный ящик". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 13:14:57 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
ShSergeScareCrowбред. черный ящик можно писать как угодно. главное что у него есть вход и выход. Можно и как угодно. Самое главное, если есть вход и выход, а в исходном коде разбираться не надо. Это и называется "чёрный ящик". если у черного ящика один вход и один выход - то его можно(и нужно) реализовать одной функцией. а если входов и выходов много, плюс ящик имеет разные состояния для разных входов? - тут уже проще сделать через ООП, так как там для этого есть готовые механизмы. а в процедурном стиле придется все это заново придумывать и кодить. и получится тоже самое ООП. только своё) велосипедное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 13:22:02 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
r u...проблема в том, что поддерживать все это геморойно. данные разрозненны, хранятся в разных местах, вытаскиваются разными функциями. все это нужно помнить самому, а лучше хорошо описать в документации.... И я о том же. Как раз это я и назвал "чёрным ящиком". Допустим, имеется объект определённого класса, у него имеются поля и медоды. И всё это дело хорошо задокументировано. Тот, кто использует класс, не должен задумываться над тем, как всё это дело устроено, а просто использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 13:23:06 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
r u...если у черного ящика один вход и один выход - то его можно(и нужно) реализовать одной функцией.... Нефиг к словам придираться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 13:24:58 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
WrunДобрый день! Разъясните доходчиво плиз следующее: Никак не могу перейти на ООП на PHP. В принципе классы я понимаю, я не понимаю реального преимущества. Можно ли какой-нибудь пример из жизни, а то всё что нагуглил - абстрактно ( Не заморачивайтесь и пишите как удобно. ИМХО ООП в PHP притянуто за ухи. ООП актуально когда речь идет во-первых об управлении событиями, во-вторых при наличии визуальных обьектов. Без ООП невозможно представить работу c JavaScript, Delphi и т.п.. В PHP это дань псевдоакадемической моде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 14:55:31 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
авторБез ООП невозможно представить работу c JavaScript Да ладно, весь жиквери написан на клосури функциях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 15:15:54 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
И делфи вы можете взять так же и писать без применения ООП, кто мешает то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 15:16:24 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
HettИ делфи вы можете взять так же и писать без применения ООП, кто мешает то? И Delphi и JavaScript представляют собой иерархическую модель данных реализованных в виде обьектов. В Delphi наверху TForm в javaScript - Doument. Если хотя бы обрабатываете нажание на кнопку, то уже используете ООП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 15:28:47 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
alex_2307ИМХО ООП в PHP притянуто за ухи. Да нет, нормально всё. Другое дело, что в пхп знание ООП совершенно вторично. Если кому очень охота поизощряться в ООП - ява или сишарп. Там без этого дела даже хелловорлд не написать. ПС. Умиляют иногда местные посты, в которых используется слово "класс" вместо "экземпляр класса", ну и другие ошибки, от которых глаза на лоб лезут у любого, кто хотя бы более-менее в этом самом ООП разбирается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 15:30:52 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
ShSergealex_2307ИМХО ООП в PHP притянуто за ухи. Да нет, нормально всё. Другое дело, что в пхп знание ООП совершенно вторично. . Да разумеется нормально, просто есть языки в которых иерархия данных заложена в обьектах изначально - вроде тех что я приводил. А ПХП язык ПРОЦЕДУРНЫЙ по своей сути, он инкапсулирует в себя самы разные процедуры (функции) в зависимости от параметра configure. Но именно фкнкции, а не обьекты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 15:39:34 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
alex_2307HettИ делфи вы можете взять так же и писать без применения ООП, кто мешает то? И Delphi и JavaScript представляют собой иерархическую модель данных реализованных в виде обьектов. В Delphi наверху TForm в javaScript - Doument. Если хотя бы обрабатываете нажание на кнопку, то уже используете ООП. Да ну что вы такое говорите. Во-первых если даже говорить о том шаблоне, в котором обычно пишутся аппикейшены отцом всего является не форма а сам аппликейшен. Во-вторых, если в JS вы будете использовать прототип document, это не сделает ваш код ОО. Я могу так же и в пхп заюзать, да и вообще вы выбрали самый плохой пример, как правило в JS нет никакой объектной парадигмы. Да и document - с маленькой буквы. В третих, я могу и на пхп взять какой-то фреймворк (по сути делфийский набор компонентов, в который и входит тот же ваш TForm) и мой код станет таким же ОО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 16:24:50 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
alex_2307Но именно фкнкции, а не обьекты. Я вас щас сильно удивлю, но в пхп куча объектов, к чему такие заявления вообще? Если даже в ЯП не будет инкапсулировано ни одного объекта, но есть возможность использования ООП, - то по вашему язык становится автоматически функциональным? Идите тогда почитайте про LISP, это действительно функциональный язык. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 16:28:05 |
|
||
|
ООП или функции
|
|||
|---|---|---|---|
|
#18+
авторА ПХП язык ПРОЦЕДУРНЫЙ по своей сути, он инкапсулирует в себя самы разные процедуры (функции) в зависимости от параметра configure. А это в догонку, на досуге почитаете http://php.net/manual/en/language.oop5.php ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2012, 16:31:26 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=37719722&tid=1465367]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
56ms |
get topic data: |
7ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 361ms |

| 0 / 0 |
