Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Повторное использование кода в ООП
 
 автор: Mookapek   (05.09.2008 в 17:45)   письмо автору
 
 

Читаю представление книги об ООП на странице http://softtime.ru/php5/?id_article=112 и встретил такую фразу:
Объектно-ориентированное программирование — это рабочая технология, которая позволяет:

    * увеличить процент повторно используемого кода 

Мне вот казалось, что ООП наоборот уменьшает процент повторно используемого кода. Или я не так понял?

  Ответить  
 
 автор: Axxil   (05.09.2008 в 18:03)   письмо автору
 
   для: Mookapek   (05.09.2008 в 17:45)
 

ООП уменьшает процент повторного кода, но увеличивает процент повторно используемого кода

  Ответить  
 
 автор: mechanic   (05.09.2008 в 21:01)   письмо автору
 
   для: Axxil   (05.09.2008 в 18:03)
 

лаконично )
другими словами, единожды хорошо спроектировав и написав класс, вы сможете его использовать снова и снова в других проектах как готовое решение (повторно использовать)

  Ответить  
 
 автор: cheops   (06.09.2008 в 03:29)   письмо автору
 
   для: mechanic   (05.09.2008 в 21:01)
 

Это можно и без ООП делать... ООП позволяет использовать повторно код для целого класса задач, за счет наследования. В других проектах можно использовать классы, унаследованные от единожды хорошо спроектированного класса (за счет этого и гибкость в повторном использовании выше, так как позволяет абстрактные алгоритмы использовать: например можно создать постраничную навигацию, а источник данных задавать в потомках - файл, директорию, таблица MySQL, ещё что-то - достаточно унаследовать новый класс и перегрузить лишь методы-источники и абстрактный класс постраничной навигации будет обслуживать все источники, даже о которых вы подумать не могли, создавая класс).

  Ответить  
 
 автор: AcidTrash   (07.09.2008 в 22:05)   письмо автору
 
   для: cheops   (06.09.2008 в 03:29)
 

>например можно создать постраничную навигацию, а источник данных задавать в потомках -
Не знаю насколько это будет эффективно. По моему взгляду, просто использование каких-то функций(пользовательских), без классов, подключаемых в данный скрипт, будет эффективнее.

P.S. ООП здесь не к чему.

  Ответить  
 
 автор: cheops   (08.09.2008 в 13:29)   письмо автору
 
   для: AcidTrash   (07.09.2008 в 22:05)
 

Все ООП-задачи можно реализовать без специальных средств. Например, windows 95 создавался на чистом C, и хотя в C нет ни единой конструкции для поддержки ООП, код признан классикой объектно-ориентированного подхода. Использование специальных средств удобнее - есть задачи, где ООП просто просится.

  Ответить  
 
 автор: ЯR   (09.09.2008 в 00:21)   письмо автору
 
   для: cheops   (08.09.2008 в 13:29)
 

Как это?

  Ответить  
 
 автор: cheops   (09.09.2008 в 00:36)   письмо автору
 
   для: ЯR   (09.09.2008 в 00:21)
 

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

Если дисциплинированно работать через интерфейсы, а не лезьть в реализацию отдельных модулей в обход их - волшебным образом начинают работать правила ООП. Каждая кнопка которую вы видите на экране, текстовое поле, окно программы - имеет общего предка - "окно" и эта часть реализована вообще без ООП, на switch-ах, жестких интерфейсах и крайне продуманных структурах данных (самостоятельно учитывающих требуемый им объем памяти).

  Ответить  
 
 автор: ЯR   (09.09.2008 в 00:52)   письмо автору
 
   для: cheops   (09.09.2008 в 00:36)
 

Интересно, как-то не думал об этом)

  Ответить  
 
 автор: Axxil   (10.09.2008 в 14:26)   письмо автору
 
   для: cheops   (09.09.2008 в 00:36)
 

Если на то пошло, то и сам стек протоколов TCP/IP (основополагающая конструкция, на которой держится весь интернет) это ООП. Там налицо и инкапсуляция и наследование и полиморфизм. Хотя методы реализаций отдельный сущностей абсолютно разные. От супер-высокоуровневого php до аппаратных маршрутизаторов и кабелей.

  Ответить  
 
 автор: Eugene77   (08.09.2008 в 20:10)   письмо автору
 
   для: cheops   (06.09.2008 в 03:29)
 

Вы так вроде нигде и не написали какая в PHP ошибка в наследовании классов?

  Ответить  
 
 автор: cheops   (08.09.2008 в 22:37)   письмо автору
 
   для: Eugene77   (08.09.2008 в 20:10)
 

В смысле?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования