Что такое ООП

beejuice

Новичок
Что такое ООП

Объясните, пожалуйста, на пальцах что такое ООП с точки зрения практического применения. Чем это удобнее процедурного подхода? На примере построения например обычного информационного сайта "рубрика->подрубрика->страница".
 

dimagolov

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

AmdY

Пью пиво
Команда форума
сначала погемороился с архитектурой классов, а в итоге получишь удобную работу для тех, кто этими классами пользуется.
$рубрика = new КлассРубрика();
$рубрика->подрубрика()->страница()->вывод();
 

Alexandre

PHPПенсионер
Объясните, пожалуйста, на пальцах что такое ООП
Очень Офигенно Помогает

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

Духовность™

Продвинутый новичок
если не понимаешь, значить это не твое и забудь про это Очень
Как он может _понимать_, надо это ему или нет, если он не знает _теорию_ ООП??? Теорию ООП надо сначала изучить, а уже после того решать - использовать или нет.

в первую очередь стиль мышления
мыслить объектами НАДО в любом слукчае. Ибо на ОО подходе строится весь мир.
 

Lightning

Трудоголик
мыслить объектами НАДО в любом слукчае. Ибо на ОО подходе строится весь мир.
Зря ты это сказал. Сейчас опять холивары начнутся ООП vs неООП. И всех, кто скажет, что ООП - хорошая практика, назовут "фанатиками", "пионерами", "теоретиками" и т.д. и т.п. Это уже было )))
 

Духовность™

Продвинутый новичок
То, что весь мир состоит из ООПодхода хорошо написано у Буча. Отрицать это бессмысленно. Это, в принципе, и без Буча понятно. Когда у меня авто ломается, например, шина спускает, я работаю с объектом колесо, а не лезу перебирать автомобиль в поисках ошибки начиная с корпуса.
 

С.

Продвинутый новичок
А когда машина просто не заводится, с каким объектом работаешь? Давай попробую угадать... Замок зажигания?
 

Krishna

Продался Java
А когда машина просто не заводится, с каким объектом работаешь? Давай попробую угадать... Замок зажигания?
А в этом случае он на 100% может исключить (как минимум) объект колесо :)
 

john.brown

просто кулибин
С.
В этом случае он ищет объект с нарущенной инкапсуляцией ;)
 

x-yuri

Новичок
мыслить объектами НАДО в любом слукчае. Ибо на ОО подходе строится весь мир
Зря ты это сказал
не столько это, сколько так. Вспомним, например, Александра Степанова
I find OOP technically unsound. It attempts to decompose the world in terms of interfaces that vary on a single type. To deal with the real problems you need multisorted algebras - families of interfaces that span multiple types. I find OOP philosophically unsound. It claims that everything is an object. Even if it is true it is not very interesting - saying that everything is an object is saying nothing at all. I find OOP methodologically wrong. It starts with classes. It is as if mathematicians would start with axioms. You do not start with axioms - you start with proofs. Only when you have found a bunch of related proofs, can you come up with axioms. You end with axioms. The same thing is true in programming: you have to start with interesting algorithms. Only when you understand them well, can you come up with an interface that will let them work.
кстати, есть еще такой момент. Ведь можно и на процедурном языке программировать в стиле ООП. Т.е. все эти class, public, protected... - синтаксических сахар

Чем это удобнее процедурного подхода? На примере построения например обычного информационного сайта "рубрика->подрубрика->страница"
пожалуй стоит начать с того, как ты себе представляешь процедурный подход решения этой задачи
 

Alexandre

PHPПенсионер
Сейчас опять холивары начнутся ООП vs неООП. И всех, кто скажет, что ООП - хорошая практика, назовут "фанатиками", "пионерами", "теоретиками" и т.д. и т.п. Это уже было
:)

ООП нужно там, где оно действительно нужно. Программировать вполне можно и без ООП и будет не хуже. Быть в каждой бочке затычка ООП не должно.
Теорию ООП надо сначала изучить, а уже после того решать - использовать или нет.
5+!
как говорил мой прапор: учи матчасть!
 

Lightning

Трудоголик
ООП нужно там, где оно действительно нужно.
Это Капитан Очевидность тебе подсказал ;)

Программировать вполне можно и без ООП и будет не хуже
Хм... А если программировать на ассемблере, будет ничем не хуже чем на PHP?
 

Alexandre

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

x-yuri

Новичок
когда мне нужно написать 10 строчек простого функционала (например для крона или разовых расчетов ) - я не создаю пару классов или один мега класс с методом Run()...
Alexandre, +1, просто где заканчивается процедурный подход, а где начинается ООП? Можешь прокомментировать это?
Вот есть у нас набор функций для работы с файлами. Но тут нам понадобилось работать с двумя файлами: создаем структуру, в которой храним информацию о файле и используем ее качестве первого параметра. Это процедурный подход или ООПешный?
 

Lightning

Трудоголик
когда мне нужно написать 10 строчек простого функционала (например для крона или разовых расчетов ) - я не создаю пару классов или один мега класс с методом Run()
+1
Это тоже очевидно, ИМХО.
 
Сверху