![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk Страницы: (7) Все « Первая ... 2 3 [4] 5 6 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]() ![]() ![]() |
|
source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
-------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
bobik02 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 451 Регистрация: 26.11.2007 Репутация: нет Всего: 14 |
Это Вы проходили на собственной "шкуре" ? Или же это со стороны ? -------------------- Have a nice day |
|||
|
||||
lukas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: нет Всего: 15 |
skyboy, прототипное было скорее всего в 4ой версии, если вы конешно понимаете что такое "прототипное"...
И причем тут вариант реализации ООП ??? Их не так уж много и они довольно похожи... Вы опять меня не понимаете, ... ![]() P.S. И причем тут вера в парадигму, когда с помощью ООП мое затрчиваемое время сильно уменьшается, а главное появляется упорядоченность в коде. -------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
|||
|
||||
Bastet |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 26.9.2005 Где: Тильзит Репутация: 1 Всего: 6 |
Как своевременно апнули тему, к моему возвращению на форум. За три (*ужас*) года я много чего надумала и теперь практикую в РНР чистый ОО-подход. Почему:
Однако, по прежнему считаю, что для разработки не мега-сложный проектов вполне можно обойтись старым добрым функциональным программированием. и будет все красиво, и будет все работать. --------------------
"I'm not bad. I'm just drawn that way" © Jessica RabbitСм.также: BB | ЖЖ | DA |
|||
|
||||
source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
Bastet, поздравляю с самостоятельным осознанием преимуществ ООП
![]() Ты уверена, что для не сложных проектов нужно именно функциональное программирование? ![]() Это сообщение отредактировал(а) source777 - 23.8.2008, 21:20 -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
Bastet |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 26.9.2005 Где: Тильзит Репутация: 1 Всего: 6 |
Не "нужно", досточно.
Эм... а ссылка - это к чему? Я что-то напутала в определении? Назовем его тогда функциональным подходом, что ли... --------------------
"I'm not bad. I'm just drawn that way" © Jessica RabbitСм.также: BB | ЖЖ | DA |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
конечно, нет. не понимаю. вот source777 меня просветил, что я, оказывается, зря говою о PHP в разделе "PHP: Общие вопросы" в теме "Объектно-ориентированный РНР". от Вас я с удовольствием выслушаю оцеку собственных познаний прототипного подхода. кстати говоря, учиывая, что прототипный подход подразумевает требования: 1. возможность полного клонирования объекта. 2. возможность модификации не только данных объекта, но и методов. нет, конечно, я и не думал читать лекцию. просто напомнил. необходимые механизмы реализованы в claskit, потому писать в протипно-ориентированном стиле можно под любой версией, под которой работает classkit. потому меня удивляет фраза про 4 версию, в которой "протипное программирование было скорее всего". неужто в 5-ке я не смогу динамически добавлять/удалять методы? или клониорвание объекта стало реализовываться в 5-й версии хуже(ввели магический метод __clone, позволяющий реализовать любую логику клонирования). Добавлено через 2 минуты и 12 секунд Bastet, все в порядке. source777 слишком рьяно относится к терминологии. просот функциональным программированием обычно называют немного другое. структура программы, когда обработка производится при помощи функций/процедур называется "процедурным программированием". но это придирки, я думаю ![]() |
|||
|
||||
lukas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: нет Всего: 15 |
всетаки много не хватает... например что-то вроде свойств со своими read и write методами, но это можно реализовать обходными путями, а вот про виртуальные методы я что-то ничего не нашел, а это очень многое обламывает... Это сообщение отредактировал(а) lukas - 23.8.2008, 21:39 -------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
откуда такая информация? все, что я нашел: что не-статические методы нельзя будет вызывать, как статтические - только для созданного объекта можно будет. но отказываться от статических членов не вижу смысла и не обнаружил про такое никакой информации. поделись источником, будь добр. |
|||
|
||||
lukas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: нет Всего: 15 |
skyboy, Вся суть прототипного ООП сводится к тому что классов нет, а есть только ОБъекты, которые можно клонировать... остальное уже расширение языка...
Я еще когда писал про это, подумал а как лучше написать процедурное или функциональное,... ![]() -------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
|||
|
||||
source777 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
Если нужен объектно-ориентированный язык для веб-разработки, то советую обратить внимание на Ruby. Добавлено через 7 минут и 29 секунд
да, лучше называть этот подход процедурным, или на крайний случай структурным, а функциональный подход обычно применяется для решения математических задач, либо для задач, требующих высокую степень надёжности кода. -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||
|
|||||
skyboy |
|
||||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
без возможности динамического управления методами у тебя будет не прототипно-ориентированное программирование, а тупо один объект, данные которого ты сможешь переопределить, а вот поведение - нет. простое клонирование объектов - не более, чем клонирование. так что это не "расширение языка", а необходимое условие для реализации прототипов. ты мне так, незнающему, и не сообщил, чем же 4-я версии "более склонна" к прототипно-ориентированному программированию. также, почему то, ничего не говоришь про "отказ от статических методов" в 6-й версии. заинтриговал и молчишь. такое есть уже с пятой версии. только, возможно, не в таком виде, как можно было привыкнуть в десктопном программировании: для объекта существует только один getter: магический метод с именем __get, и только один setter - магический метод с именем __set, в качестве параметров которым передается и имя свойства, к которому прогаммист желает получить доступ. а благодаря магическому методу __call можно сделать getter даже для методов объекта. Добавлено @ 23:03 так мы тут про PHP говорить, знач, не будем? так бы и сказал. ушел читать про Ruby.
есть такое понятие: "мультипарадигменнось" не знаю, зачем языку с динамической типизацией переменных виртуальные методы. по сути - тут все методы "виртуальные" в том отношении, что как ты объект создал, метод соответствующего класса будет использоваться. а не метод предка, который надо вызывать явно. виртуальные методы используются ведь для полиморфизма, когда в переменная типа класса-предка ссылается на объект класса-потомка и надо работать с методами класса-потомка. в PHP так и будет в любом случае. [Updated] мне чаю хочется. а вот твое "при чем тут PHP к ООП?", когда тема с таким названием находится в разделе "РНР" меня удивило своей неожиданностью Это сообщение отредактировал(а) skyboy - 23.8.2008, 23:04 |
||||
|
|||||
Bastet |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 26.9.2005 Где: Тильзит Репутация: 1 Всего: 6 |
lukas, read и white - это да, сама немного сокрушалась по этому поводу.
Вместо виртуальных методов, если я еще ничего не забыла, для реализации полиморфизма применяются абстрактные метода у базового класса. Так что полиморфизм должен работать. Мне еще очень хотелось бы модификатор доступа friendly и возможность формировать пакета... *для красоты* --------------------
"I'm not bad. I'm just drawn that way" © Jessica RabbitСм.также: BB | ЖЖ | DA |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Похоже моего поста тут никто не увидел, а жаль. Процитирую:
Ваша ошибка в том, что вы смотрите на ООП, как на реализацию, мол вот в Сях есть дружественные функции, а в ПХП нет и т.п. Нельзя так. ООПрограммирование - это концепция, а не реализация!!! ООПрограммирование в ПХП как таковое - отсутствует, есть синтаксически приближенные конструкции которые позволяют сделать объектный код, упростить несколько разработку, но суть все равно таже. При этом никто не мешает применить принципы ООПроектирования к созданию приложений на ПХП. Виртуальные методы, дружественные функции, это лишь надстройка над реализацией объектной модели, даже той, которая есть в С++, например. Не они определяют тот факт, что вы используйте ООПрограммирование, а наличие объектов, которые живут, как объекты, которые на что-то реагируют, что-то сами иногда делают. в ПХП этого - нет. Есть объектный синтаксис, который позволяет структурировать код, ну и в некоторых отдельных случаях организовать "примитивную псевдо событийность"... Еще раз повторюсь: Покажите, где у вас объекты в ПХП. Модули? А вы уверены что они у вас именно живут как объекты, а не просто как синтаксически стилизованный набор функций? В ПХП объекты, как объекты - не живут.. |
|||
|
||||
lukas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: нет Всего: 15 |
Mal Hack,
мы обсуждаем не как реализованно Объектная модель в ПХП (это вообще дело разработчиков PHP), а какие преимущество его использования... Если уж пойти дальше то можно прийти к тому что все равно это все mov,add, всякие прерывания ASM-лера... Bastet, абстрактные методы меня не устраивают... например у меня функция A используется в Функции B объекта Obj1, я создаю унаследованный класс Obj2 от Obj1, в нем переопределяю функцию A (т.е. уже функционал другой) и мне нужно чтобы в B вызывалась уже именно переопределенная функция, а не родителя... -------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |