Автор Тема: ООП и ПХП  (Прочитано 5911 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Luca_Brasi

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 1
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
ООП и ПХП
« : 06 Июля 2006, 18:28:42 »
думал куда же запостить... поэтому чо как, заранее прошу прощения, если не туда пульнул.

так вот собственно вопрос: помогите разобраться между ооп и обычным процедурным методом.
никак не могу вникнуть в суть ООП, прочитал инфу по классам, объектам и все такое. но...

что должно случиться в разработке приложения, чтоб в голове была мысль: ну вот! это надо делать с использованием ООП. просто я не умею четко определить, что же будет объектом в контексте кода: пользователь и его учетная запись? корзина? а может быть какая-то категория или обычное сообщение? как выделить сущность?

более конкретный вопрос: когда стоит использовать ООП и как это определить, если вообще возможно определить.

помогите советом... возможно есть толковая книга именно по ООП? где не просто освещается синтаксис а раскрывается именно теория применения.

зы: ну взял к примеру класс работы с БД, ну вроде как все понятно... только по ходу непонятно зачем именно этот класс надо было делать именно так а не с помощью простого инклюда, например. ведь в общем случае всеравно идет работа по принципу: у меня есть вот такое вот -- ты сделай что-то там с этим и верни мне результат.
ну точно также можно через обычные функции замутить.

глупый наверное вопрос, но тем не менее хочу разобраться... :insane:

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
ООП и ПХП
« Ответ #1 : 08 Июля 2006, 21:10:02 »
Цитировать
Luca_Brasi:
зы: ну взял к примеру класс работы с БД

представь, что у тебя не одна БД, а как минимум две. Вот и делаешь ты два объекта одного класса для доступа к двум разным БД, только вместо того, чтобы писать все время одни и те же наборы функций с разными параметрами, типа _connect(), choose_db() для каждой БД и т.д. ты просто написал две строчки, которые вызывают конструкторы, а на вход этих конструкторов и передал параметры. А ведь класс может обеспечивать работу не только с двумя разными базами данных, а с базами данных на разных СУБД. Если есть класс, который умеет работать со всеми СУБД, то процесс написания ПО упрощается:
нужно знать синтаксис обращения к БД только в рамках методов класса.

Цитировать
Luca_Brasi:
ну точно также можно через обычные функции замутить.

Методы класса предоставляют программеру интерфейс управления данными. Внутри этих методов обычно пишут какие-то механизмы контроля действий программы, которая вызывает эти методы и т.д. достаточно удобно... Плюс увеличивается удобство при переносе кода из проекта в проект.
Работая с классом программист находится на более высшем уровне абстракции, когда он выполняет действия с данными, абсолютно не зная, что внутри класса, а имея только набор средств манипуляции и контроля над этими данными. Т.е. получается, что чтобы программист понял, как работать с классом, ему нужно всего лишь показать, зачем этот класс нужен и описать методы.
работа в Украине

Оффлайн Alex_soldier

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.alex-world.ru
ООП и ПХП
« Ответ #2 : 17 Апреля 2007, 16:32:53 »
Luca_Brasi,
попробуйте посмотреть эту книгу:
http://www.wmate.ru/ebooks/book73.html

Вообще же, нет таких вещей, которые можно сделать только в ООП, и нельзя в процедурном программировании. Обратное тоже верно!
Если вы пишите с нуля, то вам никуда не уйти от написания одного и того же кода, только оформляться он будет по-разному.

По сути объекты и классы - это промежуточный слой, абстракции более высокого уровня, как уже сказал Yukko.

Т.е. вы сами создаете "конструктор" из которого потом проще складывать "здание" вашей программы. Наибольшая выгода от ООП - повторное использование созданных ранее универсальных классов.
Сложность, как вы верно заметили, в их выделении (пользователь/его учетная запись/корзина).
Идеи движут Мир!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28