Программирование: объектное vs процедурное

Какой подход к программированию вы используете


  • Всего проголосовало
    59
Статус
В этой теме нельзя размещать новые ответы.

terkin

Мой дом здесь!
Регистрация
9 Дек 2006
Сообщения
513
Реакции
200
Вобщем пишу на РНР уже год а то и больше и всегда использую в своих скриптах функции, но заметил что в больших проектах чаще всего используют классы, хотелось бы что бы кто нибудь доступно объяснил чем классы лучше, или же что можно при помощи классов чего нельзя при помощи ф-ций.
 
Каждый по-своему понимает что есть классы.
Советую книгу "PHP && MYSQL" Издательства Williams Publishing - там весьма доступно рассказано что к чему...

Для меня ооп в пхп- это способ не ошибиться и контроллировать функционал (используя интерфейсы) методов.

Стоит заметить, что классы не расширяют функционал, скорее - помогают сделать код короче, однако - несколько медленнее, чем процедурный подход.

Из плюсов на момент перехода на ооп для меня:
- Упрощенные имена функций
- Логическое разбиение кода

Думаю, никто не возьмется в 2-х словах описать все фишки ООП. Лучше читать.. А еще лучше - читать и тут же писать.
 
Не согласен с тобой Для просмотра ссылки Войди или Зарегистрируйся , это ты говоришь про достоинства ООП вообщем -- вобщем ООП конечно эффективней применять, сама парадигма более новая.
НО : я считаю в пихапи лучше использовать функции, потому что, я уже убедился в 4 версии писать в стиле ООП проблемно, вылазит много непонятных косяков, причем когда запускаешь на пятой версии, все работает ПОЧТИ нормально. Можно конечно писать под пятую версию, это даже удобней, появляютсья много новых всяких полезных фич, типа мультикурла, да и ооп реализовано нормально. Но опять выступает "но": 4 версия пхп все еще актуальна и практ. все хостинги продают с 4 версией, при этом делаю пометку типа это более стабильно будет работать, кароче проблема эта глобальная, факт в том что пока лучше всего использовать пхп+функции
 
Хе-хе...

1. Покажи код класса, который работает некорректно под четверку и работает на пятерке. Я такого не видел.
2. Четверка отменяется, кстати... Чуть более месяца осталось - рано либо поздно все равно умрёт, как и тройка...
3. Чем обоснованны слова
"... факт в том что пока лучше всего использовать пхп+функции ..."
?
 
Хм раз тут всё так завертелось-закрутилось прошу модеров добавить опрос к теме: Что вы используете в РНР:
1) классы
2) ф-ции
3) классы+ф-ции
 
Когда появилось ООП - все сильно возрадовались, предсказывая скорую смерть процедурному подходу. Еще ранее, во времена романтики "искусственного интеллекта" был пролог, который, как многие думали, своим изяществом, строгостью концепции и нацеленностью на решение сложных логических задач навсегда изменит лик современного программирования. И что? Кто ченить на прологе наваял из присутствующих? Процедурное программирование будет всегда, и вот почему.
Концепция ООП хороша - она соответствует человеческому мышлению, который вычленяет из окружающего винегрета объекты, абстрагируется, (если кто не знает - с "обосраться" это слово не имеет ничего общего), выделяет классы объектов, пытается понять их свойства, поведение, сходства и различия. Эта концепция близка нашему уму. Но!
Ведь в реале все не совсем так - все объекты - совсем разные. Не бывает двух совершенно одинаковых кружек. У каждого объекта в реале бесконечное число отличий.
Такому положению дел больше соответствует процедурный подход - есть ситуация - есть прямое решение. Иногда нужно просто отварить картошки. Зачем тут объекты?
Короче - нихто не победит.
--------------------------------
Приимущества ООП проявляются тем больше, чем больше народу занято в проекте и чем больше проект. Но - стадия проектирования сложнее.
 
Полностью согласен с garcia.
Только с опытом приходит осознание того, когда-же необходимо ООП. А так, процедурное программирование покроет все Ваши потребности.
Задайте себе простой вопрос: Кому, или в каком еще месте понадобится класс который я собираюсь изваять?
Для меня основное в программировании - простота и элегантность решения, как этого достичь решать Вам.
По своему опыту имею примеры, когда мои функции перерастали в классы, - помоему это верный путь не городить лишнего.
 
  • Заблокирован
  • #8
в общем я так понимаю что выгоднее и правильнее переходить на ооп. да?
 
Недостатки ООП:
1. Для простых вещей менее удобно (с java имели дело? То ли дело Python)
2. Ошибки в проектировании более болезненно потом аукаются. Если задача действительно сложная (да еще и в процессе написания условия задачи меняются - а так бывает!) то беда.
Иными словами, если задача стабильна и понятна - лучше ООП. Если нет - приимущества ООП теряются - при изменении условий надо перепроектировать объектную модель. Или так: ООП больше подходит для последовательного workflow (этап за этапом) а значит, если на каком-то этапе косяк - надо возвращаться назад. Процедурный подход более фриволен.
Если у вас в башке не сформировалась объектная модель вашей задачи - начинать программировать в объектах нельзя. А процедурно - можно уже и начинать, пробовать
 
Что вы используете в РНР:
1) классы
2) ф-ции
3) классы+ф-ции
при использовании классов функции никуда не уходят. Они просто идут внутри класса и зовутся методами. В ООП сделаны удобные вещи для манипуляции нужными функциями - напр. объявил сейчас, а начинку добавил позже

если на каком-то этапе косяк - надо возвращаться назад. Процедурный подход более фриволен.
Если у вас в башке не сформировалась объектная модель вашей задачи - начинать программировать в объектах нельзя. А процедурно - можно уже и начинать, пробовать
туда же. Накатал функцию, протестил - вложил в класс. Нет противоречия.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху