| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Объектная модель |
| Автор: arial 14.4.2003, 13:47 |
| Хотел бы задать такой вопрос: В чем смысл объектной модели, какие преимущества она дает и как ее использовать? Хотелось бы получить подробный ответ, сдобренный примерами. |
| Автор: Mark.dll 14.4.2003, 15:59 |
| На http://www.ddj.com/documents/s=3817/nam1012432272/index.html |
| Автор: Mark.dll 14.4.2003, 16:01 |
| One of the main advantages of OOP is that it enables programmers to build customized data modules, each having specific attributes and functionality. In OOP lingo, this customized data module is known as a class. |
| Автор: arial 14.4.2003, 16:38 |
| А по русски? |
| Автор: acp 14.4.2003, 18:12 |
| А по русски это звучит так "Если у тебя небольшой проект и ты хочешь проблем на свою голову и большого геморроя, то используй ООП". PS: ООП не для маленьких проектов... |
| Автор: arial 14.4.2003, 18:54 |
| Имеется в виду ссылка по русски. |
| Автор: Mark.dll 14.4.2003, 20:48 | ||
Не искал на русском. К тому же, английский ты обязан знать |
| Автор: Foxx 15.4.2003, 05:23 | ||
это понятно... но что делать если приходилось изучать другой язык ? быстро ведь не переучишься.... |
| Автор: Devorior 15.4.2003, 08:15 |
| в PHP объектную модель надо делать если это действительно необходимо, я например делаю только класс по работе с MySQL. |
| Автор: IZ@TOP 15.4.2003, 09:20 | ||||||||
А я вооще все что можно на классах строю ...
Вообще сам по себе класс (это чтоб не кто не путался), это не обьект, а лишь его чертеж, а сам обьект представляет из себя экземпляр класса - со своими методами и свойствами (ну я и загнул ...) Короче вот некоторый код, который я надеюсь тебе станет понятным
Если че не понятно ... |
| Автор: Foxx 15.4.2003, 11:33 |
| понятно ОффТоп: не можешь так же обьяснить сессии ? а то уже как минимум 10 раз прочел, а так и не могу понять |
| Автор: IZ@TOP 15.4.2003, 11:58 | ||
Спасиб Огромное Я и сам очень долго вникал в это все, тока пока с наследованием не разобрался ... да может это и не нужно ... я мог бы и лучше написать еслиб не работа, времени не хватает ... Попробую про сессии обьяснить если получится ... тока чуть попозже . |
| Автор: Foxx 15.4.2003, 13:35 | ||
буду ждать |
| Автор: IZ@TOP 15.4.2003, 16:31 | ||
Значит так:
Короче говоря если че не заработает , илит еще вопросы появятся то лучше мне на мыло пиши ! (mailto:izatop@alien.pp.ru) |
| Автор: Foxx 15.4.2003, 16:35 |
| спасибо |
| Автор: IZ@TOP 15.4.2003, 16:49 | ||
Не за что ... монстр программирования |
| Автор: Mark.dll 15.4.2003, 16:51 |
| Ну и оффтопперы... |
| Автор: Foxx 15.4.2003, 16:53 |
| ОффТоп...... Yunior PHP Programmer не нравилось, и это не нравиться Что же мне делать? |
| Автор: Foxx 15.4.2003, 16:55 | ||
ну как те сказать я.... вообще то эту тему во флуде завел.... так что уж флудильщик |
| Автор: arial 15.4.2003, 19:59 |
| Iz@top, я не понимаю, почему нелзя просто применить функцию save(), т.е. в чем смысл самого использования ООС. Я не втыкаюсь. Чтобы легче было понять, к чему я открыл эту тему, я напишу предысторию: Я пишу сайт. Я там, типа, програмист - верстальщик - дизайнер. Моя задача - предоставить человеку, который администрирует этот сайт наиудобнейший контроль. По логике вещей, к примеру, новости и гостевая книга это близнецы-братья (если для новостей сделать веб-интерфейс). И в новостях и в гостевухе добавляются новые сообщения (в новостях - новости за такое-то число, а в гостевухе мессаги), столько-то новостей/мессаг на каждую страницу, навигация между этими страницами и т.д.. Т.е., по логике вещей, можно создать некий класс, который в одном случае будет добавлять новость, а в другом сообщение. Сейчас, т.к. я не понимаю ничего в ООС, я пытаюсь это осуществить, подставляя переменные в свои функции. Возможно я глубоко заблуждаюсь, не зря же ООС сейчас так востребована среди программистов. Короче говоря я смысл ищу. p.s. Если вообще кто чё понял из того, что я написал. |
| Автор: IZ@TOP 16.4.2003, 10:35 | ||||
Понять то понял ... попробую объяснить зачем это все нужно: Вот допустим говоришь что у тебя новости и гостевуха почти одно и тоже, то тут можно создать некий класс описывающий некие функции которые обрабатывают запросы из сценариев гостевой и новостей – Определим функцию load_db() которая посредством определенных внутриклассовых переменных $dbDir и $dbName (все переменные определенные внутри класса вызываются в функции посредством стрелочной конкантенации : $this->dbDir = “db/”;, $this->dbName = “data.db”; …), определяет путь к файлу в котором хранится информация – будь то новости или гостевая. С помощью этой функции (код писать не буду, ты сам его наверное уже написал), из файла загружается массив данных (можно так же определить переменную $dbType, которая будет определять какая информация хранится в файле(можно так же сделать независимый сценарий который будет получать не тип а разделитель … ну и тд, я думаю понятно – если $this->exp = “|”; то значит файл будет разобран (допустим с помощью explode()), с разделителем ‘|’ – и создан массив … там ты сам определишь как он будет образовываться. Потом можно определить еще пару внутриклассовых функций, которым ты будешь передавать через $this->db_array (который был заранее определен внутри класса), то есть внутриклассовые переменные могут передаваться в функцию, получать там значение, и передаваться в другие функции – допустим для форматированного вывода значения ну и т.д. …
Что дает обьектно ориентированный подход - независимость, на надо думать что там и как , главное что работает ! И самое главное что это все намного ускоряет обработку .... однако тут тож с умом надо к делу подходить |
| Автор: arial 16.4.2003, 22:23 |
| Вроде смысл понял, написал класс, позволяющий делать постраничный вывод информации из файла. Действительно ООП удобно. Всем спасибо. Отдельное спасибо Iz@topу |
| Автор: IZ@TOP 17.4.2003, 08:20 | ||
Молодец ! Если будут еще вопросы - ты знаешь где меня найти ! |