[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Процедурный стиль vs Объектно ориентированное прог
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
Invis1ble
Цитата (twin @ 27.01.2016 - 16:07)
Хорошо, предложи способ измерить прозрачность в отсутствии света.

Как бэ прозрачность материала можно рассчитать, необязательно пропускать через него излучение.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

twin
Цитата (Invis1ble @ 27.01.2016 - 12:12)
Как бэ прозрачность материала можно рассчитать, необязательно пропускать через него излучение.

Можно. Но для начала нужны данные для расчетов, эталон, единицы прозрачности. А их не получить без света. Как минимум нужно знать свойства света и его взаимодействие с различными материалами. Вот сам свет - сущность. Его можно измерить. А то, что является результатом взаимодействия - нельзя в отрыве от этой сущности. Нет света - нет прозрачности.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
bestxp
twin
вот раз не знаешь =) тогда и не лезь =)
Эли4ка
bestxp
а ты знаешь?
twin
Цитата (chee @ 27.01.2016 - 12:10)
Но ставить равно между динамикой и статикой я не буду, слишком уж отличая влияют на качество получаемого кода.

Вот о том я и говорю, не стоит пытаться узурпировать классы))). Нет четкого определения парадигм. Особенно ООП. Просто ООП, это какбы надстройка над процедуркой, а значит накладывает большие обязательства и устанавливает большие рамки.

Хорошо это или плохо - предмет другого холивара. Однако я все же уверен, что использование классов (да равно как и их экземпяров) в качестве хранилища функционала (с той же инкапсуляцией), это не признак ООП.

Инкапсуляция появилась задолго до классов и обектов. А как термин еще раньше. Инкапсуляция, это механизм, позволяющий ограничить доступ одних компонентов программы к другим.

Наследование, кстати, это механизм классов, а не объектов. Нельзя унаследовать объект. Так что это за уши притянуто.

Полиморфизм... Ну может быть, хотя понятие тоже довольно расплывчатое.

Нет, это не показатели. Это просто атрибуты. Показателем ООП может служить только построение взаимодействий частей программы. Если объекты общаются между собой, это ООП. Если они только обрабатывают данные - уже нет. Ибо черным по белому:
Цитата
Вычисления (в ООП) осуществляются путём взаимодействия (обмена данными) между объектами, при котором один объект требует, чтобы другой объект выполнил некоторое действие.


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Цитата (bestxp @ 27.01.2016 - 12:23)
вот раз не знаешь =) тогда и не лезь =)

biggrin.gif biggrin.gif biggrin.gif


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Oyeme
Вывод голосования: OOP vs procedural programming 11:1

Twin

Единственный кто тебя поддерживает,так это ты сам.Остальные имееют сомнения в себе,что и показал опрос.

Насчет споров:
Если захотеть можно доказать что черное это на самом деле белое.

user posted image
chee
Цитата (twin @ 27.01.2016 - 16:43)
Вот о том я и говорю, не стоит пытаться узурпировать классы))). Нет четкого определения парадигм. Особенно ООП. Просто ООП, это какбы надстройка над процедуркой, а значит накладывает большие обязательства и устанавливает большие рамки.

Рамки и ограничения оправданы, это какие-то правила, а не ужасная энтропия. Многие, включая тебя, считают что если задачу можно реализовать по разному это хорошо. Я не придерживаюсь этого, особенно в работе с фреймворками и готовым продуктами. Кодовая база должна тебе диктовать как писать для неё код.

twin, смотри статический класс, который не хранит в себе состояние, будет являться процедурным кодом, если же он хранит в себе состояние(контекст) и на основе него мы получаем различную логику его методов, такой код я буду считать объектным.

Цитата (twin @ 27.01.2016 - 16:43)
Однако я все же уверен, что использование классов (да равно как и их экземпяров) в качестве хранилища функционала (с той же инкапсуляцией), это не признак ООП.

А я уверен, что это признак ООП.

Цитата (twin @ 27.01.2016 - 16:43)
Если они только обрабатывают данные - уже нет

Как они будут обрабатывать данные, если ты не скажешь им это сделать. А сказать ты можешь через методы, а вызов метода это уже взаимодействия между объектами. Если у тебя данные хранятся отдельно, а код отдельно, то в максимальной форме это - функциональщина, а лайтовой - процедурка.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Oyeme
Вот интерестное видео призидент сбер банка который говорит про технологии и их использование в мире.И как это технология используется в России.

Почему-то мне напомнил слова Twin, c его конкуренцей за старый подход программирования.

https://www.youtube.com/watch?v=04jCLPefbc4

на 7 минуте про метологии.

Рассказыает про Agile,Scurm итд
Сейчас все развиваются,меняются языки,подходы,метологии,что бы развивались как можно быстрее проекты итд что и применяетя везде.

И кто не идет развивается или не использует просто проигрывают конкуренцию на рынке и как уже выразился призидент сбер банка считается лузерами.(дауншивтерами)

Общество которое не готово менятся,выбывает.Сейчас уже тесла машины это прошлый век,а пользованием топливом это уже никому не интерестно.

Подумайте теперь кого слушать и какие выводы делаетать,а то будете потом на рынке лузером.
twin
Цитата (chee @ 27.01.2016 - 13:06)
Рамки и ограничения оправданы, это какие-то правила, а не ужасная энтропия.

Пусть, не об этом речь.
Цитата (chee @ 27.01.2016 - 13:06)
twin, смотри статический класс, который не хранит в себе состояние, будет являться процедурным кодом, если же он хранит в себе состояние(контекст) и на основе него мы получаем различную логику его методов, такой код я буду считать объектным.

Хорошо. Если экземпляр класса (объект) не хранит состояния, он будет являться процедурным?
Цитата (chee @ 27.01.2016 - 13:06)
Как они будут обрабатывать данные, если ты не скажешь им это сделать.

В процедурном (а лучше в структурном) программированиии есть одно условие. Подпрограмма должна иметь один вход и один выход. Если у меня есть клас, из которого я запрашиваю один метод в данном контексте, передаю ему данные и из него получаю результат, это не противоречит этому условию. Не важно, где находится и как выглядит подпрограмма. Важно, что я сунул в неё данные и получил ответ.

Так вот. При этом мне совершенно не важно состояние самого объекта (или статического класса), а значит возвращаемся к первому вопросу
Цитата
Если экземпляр класса (объект) не хранит состояния, он будет являться процедурным?


Дабы проиллюстрировать, небольшй кодик:
class Example
{
public function getRandom($var)
{
return $this->random($var);
}

protected function random($var)
{
return rand(0, $var);
}
}



$obj = new Example;
$rand = $obj->getRandom(5);

if ($rand == 5) {
echo $obj->getRandom(5);
} else {
echo $obj->getRandom(2);
}
Это ООП код?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.