krivarik
2.08.2013 - 19:01
Здравствуйте, кто нибуть сможет объяснить или дать ссылку на ресурс но с понятным описанием зачем нужно ООП, а то так и не понял. На днях читал книгу ООП на РНР но так и не понял вчем его преимущество. Мало того что книга с ошибками в коде но так толком не разъясняет зачем надо ООП, по книге я только понял что то что предлагается сделать можно сделать процедурно и быстер без всяких заморочек.
krivarik, это холивар еще тот. Можно спорить до бесконечности что лучше и почему. Лично мне нравится больше ООП, с ним программа становится более читабельной что ли... Да и вообще большинство современных библиотек построено по принципу ООП...
Есть мнение, что изначально объектно-ориентированный подход создавался именно для написания библиотек. Ну хотя бы потому, что в нем есть наследование. Вот например, вы решили, что метод query, скажем, в библиотеке goDB не очень вам подходит. Но в целом библиотека нравится. Что делать? Можно пойти и исправить код. Но тогда при обновлении версии придется снова исправлять код. А так вы унаследовали библиотечный класс, перегрузили метод query и по идее ваш код должен быть совместим с более новыми версиями. Вы уже на этот счет не заморачиваетесь.
Michael
3.08.2013 - 08:15
Цитата (paul85) |
Есть мнение, что изначально объектно-ориентированный подход создавался именно для написания библиотек. |
одна из причин.
С библиотеками и модульное программирование (которое после процедурного идет) справлялось т.к. реализовывало инкапсуляцию. Конечно дальше уже ООП зарулило, и рулит с тех пор, как более естественный вариант.
krivarik, тут вопрос в мышлении. Если рассматривать программу как просто алгоритм который выполнился и выдал результат, то процедурный подход тоже является естественным. Как например писались программы под DOS ? Входное событие от пользователя произошло, оно пошло выполняться и отдало ему результат, ждет новой реакции от пользователя (в пхп та же логика.)
Но потом появилась многозадачность и о такой простоте пришлось забыть. Многозадачность, которая позволяет реально моделировать системы. И понадобились более естественные методы разработки.
Глянь вокруг на мир, что ты там видишь? Объекты, которые состоят из объектов, взаимодействуют с другими объектами.
Соответственно в ооп другой подход - там объекты обмениваются между собой событиями.
_____________
There never was a struggle in the soul of a good man that was not hard
Michael
Цитата |
Глянь вокруг на мир, что ты там видишь? Объекты, которые состоят из объектов, взаимодействуют с другими объектами. |
Мир так несовершенен, что порой даже страшно... А по его подобию построили парадигму.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Michael
3.08.2013 - 14:53
Мир и природа совершенны, это мы люди, как зеркала, несовершенны.
_____________
There never was a struggle in the soul of a good man that was not hard
Zzepish
3.08.2013 - 14:55
Холливар в теме ощущаю я
Неее. Если бы мир был совершенен, то водка была бы полезной.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Ну так я про что и говорю... Какое тут совершенство. Всё, что в этом мире приятно, или вредно или аморально или ведет к ожирению.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
twin, мир - это не только человек и то до чего он может дотянуться своими руками, да и в целом он спроектирован неплохо . А то, что
Цитата (twin @ 3.08.2013 - 11:37) |
Если бы мир был совершенен, то водка была бы полезной. |
, - это не баг, это фитча.
понаехали тут, процедруное это предыдущий шах, ООП это совеременность, да возненавидят меня процедурники, но процедурное это устарелое, сейчас актуально 2 функциональное и Объектное, ПХП не является функциональным языком, следовательно является объектным, хотя он эволюционировал из процедурного.
Кому нравиться процедурщина , попробуйте Хаскель, Ерланг или Лисп например
Цитата (bestxp @ 3.08.2013 - 14:50) |
ПХП не является функциональным языком, следовательно является объектным, хотя он эволюционировал из процедурного.
|
Можно с этого места поподробнее?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
У меня процедурный подход вызывает жуткое унынье... Каждый раз либо параметры передавать туда-сюда, либо делать глобальные переменные. Когда одна функция вызывает другую, как бы внутри сущности, - это кошмар как неудобно!
В ООП этот вопрос решен ИМХО крайне удачно, через поля класса (некоторые почему-то называют их свойствами). А учитывая, что класс по правилам должен реализовывать лишь одну сущность, то эти переменные практически никогда не требуются вне объекта. Return можно делать лишь готового результата, а не промежуточного.
Ну мне так кажется...
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.