[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Императив VS ООП
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
twin
Все было верно у меня. Все дело в том, что мне не нужен прораб и тем более компания.
Цитата
данныеЯмы = получитьДанные(яма);// Внешние данные, в PHP GET к примеру
деньги = получитьДанные(деньги);// Внешние данные, в PHP POST к примеру
данныеЛопаты = сарай(лопата); // Запрос в хранилище, допустим MySQL
пузырь = магазин.виноводочный_отдел(деньги); // Библиотека, нужный метод
яма = сосед.копать(данныеЯмы, данныеЛопаты, пузырь); // Библиотека, нужный метод
получить результат(яма); // Тут варианты, вожможно выдача в поток
Ваш не стану комментировать, но я там тоже по другому бы немного решал, если бы писал на ООП.

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

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

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

user posted image
chee
twin ок, понял, значит у вас процедурка, давайте тогда вы уж это будет так называть.

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

Вообще прав bestxp, это больше похоже на функциональное программирование, чем на императив. Ну к концу баттла я думаю разберусь с парадигмой. smile.gif

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


Процедурка, это
Цитата
последовательность процедур, каждая из которых есть последовательность элементарных действий и вызовов процедур, структурированных с помощью структурных операторов if, for и while
У меня сложнее схема.

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

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

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

user posted image
twin
Разобрался я наконец то. Все ясно теперь как Божий день. Действительно, я не прав. Признаю. В глобальном смысле не прав, хотя и вы все тоже далеки от истины.

Вся фишка в том, что нет никакой ООП парадигмы. Как нет и процедурной. (Еще один повод не доверять википедии). Есть две - императивная и декларативная. Остальное - способы программирования.

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

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

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

Так что да, я был не прав. Не могу я использовать объекты. Хотя и не обольщайтесь, утверждение, что
bestxp
Цитата
Если будет хоть один класс или объект у twin будем считать что он написал с использованием ООП)
Императив не подразумевает использование классов и объектов)
верно только в части объектов. И если я создам объект, это совершенно не значит, что это ООП. Это смесь императивного и декларативного программирования, не более того. Я могу создать всего один объект, а ООП обязывает организовать взаимодействия. Взаимодействие с самим собой, это ананизм))) но не ООП.

Так что да, для чистоты эксперимента я перепишу все используемые либы на статику. Придется скорее всего отказаться от своего шаблонизатора (не удалось попиарить sad.gif ). Трудозатраты на его переделку вряд ли сопоставимы с результатом эксперимента.

Или в виде исключения закроем глаза? smile.gif

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

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

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

user posted image
chee
Цитата (twin @ 6.11.2014 - 09:52)
Или в виде исключения закроем глаза?

пофиг же

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
S.Chushkin
Стоит добавить к вашей битве ложку чего-то...
Когда речь идёт о статическом классе, стоит помнить, что это тоже объект, только он статический (глобальный).

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
twin
S.Chushkin
Это не так. Вернее это не имеет отношения к парадигмам.

Это скорее не объект, а субъект. Объект, это кто действует. Субъект - на кого оказывается действие.

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

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

Простыми словами:

Статический класс, это подпрограмма с собственной памятью и своими функциями (контейнер). Вполне пригоден для императива.

Экземпляр класса (объект) - задекларированный набор данных для работы с классами. Не годится для императива.

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

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

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

user posted image
S.Chushkin
Цитата (twin @ 6.11.2014 - 19:49)
S.Chushkin
Это не так. Вернее это не имеет отношения к парадигмам.

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

По сути, классы это просто описания объектов, не важно, статические или нет. Классы вообще к объектам имеют косвенное отношение - описать объект можно и без структуры Class. smile.gif

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
S.Chushkin
Цитата (twin @ 6.11.2014 - 19:49)
Простыми словами:

Статический класс, это подпрограмма с собственной памятью и своими функциями (контейнер). Вполне пригоден для императива.

Экземпляр класса (объект) - задекларированный набор данных для работы с классами. Не годится для императива.

Это уже на уровне конкретной реализации.
ОП от неОП отличается в первую очередь идеологией. А всё остальное - следствие.

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
S.Chushkin
Цитата (twin @ 6.11.2014 - 19:49)
Простыми словами:

Если пойти по этому пути, то... Простыми словами:
Классическое ООП: Внешний мир просит объект выполнить некое действие
Твой метод: Внешний мир выполняет некое действие над объектом
всё остальное - следствие, в т.ч. конкретная реализация.

Я правильно понял?

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
twin
S.Chushkin
Совершенно в точку. smile.gif Но я не стал бы называть объектом класс. По сути оно верно, но в конкретике вносит сумятицу.

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

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

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

user posted image
Splaer
Почаще бы так, господа.
Я из этих двух топиков почерпнул информации больше, чем из нескольких прочитанных книг.
Я просто в восторге biggrin.gif biggrin.gif
twin
Погоди, толи еще будет, когда коды начнем сравнивать. biggrin.gif

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

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

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

user posted image
chee
Кстати вчера переписывал CMS, не могу я работать со статикой все-таки, пришлось внедрить DI. laugh.gif

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

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

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

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

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

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