Что такое ООП

whirlwind

TDD infected, paranoid
когда мне нужно написать 10 строчек простого функционала (например для крона или разовых расчетов ) - я не создаю пару классов или один мега класс с методом Run()
Чем, в данной ситуации, функция и набор глобальных переменных отличаются от класса с атрибутами в плане накладных расходов на реализацию или что-то там еще?
 

x-yuri

Новичок
отличаются тем, что я не вижу причин использовать классы для 10 строчек
 

Dreammaker

***=Ф=***
whirlwind
тем что к классу, если следовать некой идеалогии потом ещё тесты придётся писать :)
 

whirlwind

TDD infected, paranoid
Давайте оставим голословные утверждения звездам шоу-бизнеса. Разницу показателей для ваших "аргументов" в отношении 10 строк кода привести можете?

PS. Умение пользоваться куайцзы позволяет кушать рис так же успешно, как и более крупную пищу. Но если палочки вываливаются из рук, то покушать ими не удастся вообще :D
 

x-yuri

Новичок
показатель "использование возможностей языка по мере необходимости"
без ООП: 1
с ООП: 0
итого: 1:0 в пользу "без ООП"
 

whirlwind

TDD infected, paranoid
Ага. Либо встречу, либо нет (c) анекдот

PS. что то и правда в последние дни повышенный троллизм какой-то наблюдается
 

x-yuri

Новичок
а что же у тебя за "аргумент" со значимой разницей показателей?
 

whirlwind

TDD infected, paranoid
Ви не из Одессы? Я не знаю. По этому и спрашиваю

Автор оригинала: whirlwind
Чем, в данной ситуации, функция и набор глобальных переменных отличаются от класса с атрибутами в плане накладных расходов на реализацию или что-то там еще?
Конкретно кодом можете продемонстрировать свои затруднения или повышенные объемы работ, ну вообще хоть что нибудь продемонстрировать, кроме троллизма можете?
 

x-yuri

Новичок
конкретно кодом?
PHP:
DummyClass::run();

class DummyClass {
    static function run() {
        // 10 строчек кода
    }
}
так вот смысл я вижу только в тех 10-ти строчках. Можешь считать это в количестве букафф или количестве лексем, как угодно. Если ты спросишь, значительная это разница или нет? Я скажу нет. Но об этом речь и не шла

p.s. надеюсь, звезда шоу-бизнеса разъяснит в чем суть троллизма сообщений?
 

whirlwind

TDD infected, paranoid
Действительно, только полный идиот променяет процедурную портянку на такое ооп.
 

Alexandre

PHPПенсионер
а где начинается ООП? Можешь прокомментировать это?
где кончается земля и где начинается небо?
все очень расплывчато...

Если есть повторяющиеся куски (более трех раз ) - наверно лучше применять классы.

если есть есть более чем 5 ветлений IF стоит применять классы.

Это может уложиться в рамки:
Если кода более чем на 50 строк - наверно нужно применять классы.

Но честно говоря - сложно сформировать точные критерии и все очевидно индивидуально.

если предметная область хорошо ложится на ООП - то однозначно надо использовать ООП
 

x-yuri

Новичок
Alexandre, я не про сложность. Ведь весь ооп-синтаксис можно сэмулировать на процедурном языке. Да, будет не так удобно, но реализуемо. Так вот собственно вопрос "где заканчивается процедурный подход, а где начинается ООП?" был в этом контексте
 

Alexandre

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

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

если мы в нашем коде можем выделить типовые абстракции, то можем однозначно применять ООП.

ИМХО... может кто-то думает иначе.
 

john.brown

просто кулибин
x-yuri
А можно примерчик "сэмулированного ооп синтаксиса"?
И, как правильно сказал Alexandre, не в синтаксисе суть ооп, а в "абстрагирование, обобщение, декомпозиция и композиция". По болшому счету поф, пишу я $foo->bar(), или bar($foo). От применения в синтаксисе стрелочки код еще не становится ооп...
 

x-yuri

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

Alexandre

PHPПенсионер
А можно примерчик "сэмулированного ооп синтаксиса"?
На С очень хорошо эммулируют ООПешность.

примерчик не приведу, но глянь в исходники энджиникса, там все грамотно и красиво. Это первое что мне пришло в голову, но есть и много других реализаций.

суть не в стрелочках и точечках, как указали выше.
 

Lightning

Трудоголик
я уже приводил описание. Пример немного условный (функции для работы с файлами уже есть и хранить в этой структуре только ресурс можно будет). Пока что только Lightning считает, что это процедурный подход. Может потому что я не добавил, что инкапсуляцию можно обеспечить на уровне соглашений. Я думаю, рассказывать как сделать наследование и т.д. смысла не имеет?
По твоему описанию это процедурный подход.

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