|
|
|
| Читаю представление книги об ООП на странице http://softtime.ru/php5/?id_article=112 и встретил такую фразу:
Объектно-ориентированное программирование — это рабочая технология, которая позволяет:
* увеличить процент повторно используемого кода
|
Мне вот казалось, что ООП наоборот уменьшает процент повторно используемого кода. Или я не так понял? | |
|
|
|
|
|
|
|
для: Mookapek
(05.09.2008 в 17:45)
| | ООП уменьшает процент повторного кода, но увеличивает процент повторно используемого кода | |
|
|
|
|
|
|
|
для: Axxil
(05.09.2008 в 18:03)
| | лаконично )
другими словами, единожды хорошо спроектировав и написав класс, вы сможете его использовать снова и снова в других проектах как готовое решение (повторно использовать) | |
|
|
|
|
|
|
|
для: mechanic
(05.09.2008 в 21:01)
| | Это можно и без ООП делать... ООП позволяет использовать повторно код для целого класса задач, за счет наследования. В других проектах можно использовать классы, унаследованные от единожды хорошо спроектированного класса (за счет этого и гибкость в повторном использовании выше, так как позволяет абстрактные алгоритмы использовать: например можно создать постраничную навигацию, а источник данных задавать в потомках - файл, директорию, таблица MySQL, ещё что-то - достаточно унаследовать новый класс и перегрузить лишь методы-источники и абстрактный класс постраничной навигации будет обслуживать все источники, даже о которых вы подумать не могли, создавая класс). | |
|
|
|
|
|
|
|
для: cheops
(06.09.2008 в 03:29)
| | >например можно создать постраничную навигацию, а источник данных задавать в потомках -
Не знаю насколько это будет эффективно. По моему взгляду, просто использование каких-то функций(пользовательских), без классов, подключаемых в данный скрипт, будет эффективнее.
P.S. ООП здесь не к чему. | |
|
|
|
|
|
|
|
для: AcidTrash
(07.09.2008 в 22:05)
| | Все ООП-задачи можно реализовать без специальных средств. Например, windows 95 создавался на чистом C, и хотя в C нет ни единой конструкции для поддержки ООП, код признан классикой объектно-ориентированного подхода. Использование специальных средств удобнее - есть задачи, где ООП просто просится. | |
|
|
|
|
|
|
|
для: cheops
(08.09.2008 в 13:29)
| | Как это? | |
|
|
|
|
|
|
|
для: ЯR
(09.09.2008 в 00:21)
| | А вот так, используя ООП-конструкции можно создавать не объектно-ориентированный код, что часто и делают. А ООП-код можно создавать и без спец-конструкций. Связано это с тем, что по сути для ООП не требуется концепции класса и объекта - их можно реализовать модулем. Суть ООП-подхода кроется в инкапсуляции, наследовании, полиморфизме и абстрактных типах данных - это все можно организовать и так.
Если дисциплинированно работать через интерфейсы, а не лезьть в реализацию отдельных модулей в обход их - волшебным образом начинают работать правила ООП. Каждая кнопка которую вы видите на экране, текстовое поле, окно программы - имеет общего предка - "окно" и эта часть реализована вообще без ООП, на switch-ах, жестких интерфейсах и крайне продуманных структурах данных (самостоятельно учитывающих требуемый им объем памяти). | |
|
|
|
|
|
|
|
для: cheops
(09.09.2008 в 00:36)
| | Интересно, как-то не думал об этом) | |
|
|
|
|
|
|
|
для: cheops
(09.09.2008 в 00:36)
| | Если на то пошло, то и сам стек протоколов TCP/IP (основополагающая конструкция, на которой держится весь интернет) это ООП. Там налицо и инкапсуляция и наследование и полиморфизм. Хотя методы реализаций отдельный сущностей абсолютно разные. От супер-высокоуровневого php до аппаратных маршрутизаторов и кабелей. | |
|
|
|
|
|
|
|
для: cheops
(06.09.2008 в 03:29)
| | Вы так вроде нигде и не написали какая в PHP ошибка в наследовании классов? | |
|
|
|
|
|
|
|
для: Eugene77
(08.09.2008 в 20:10)
| | В смысле? | |
|
|
|