[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Объясните в чем преимущества ООП?
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18
chee
Цитата (twin @ 2.11.2014 - 07:02)
Я не связан канонами. Никто не запрещает локально использовать любую парадигму, в отличие от.

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

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

Это не так. Все зависит от конкретных условий. Вот к примеру с глазками тебе править придется не один класс. Причем придется сначала добавить класс MoveВlink, потом добавить реализацию в каждый класс животного. Как минимум свойство, если рассматривать наш пример. Он просто сейчас пустой, вот и кажется, что мало работы. Нет, все предется перелопатить. Большинство действующих классов. И вероятность багов совершенно не уменьшается.

Я больше скажу. По опыту, действий обычно требуется намного меньше сущностей. Так что вероятность правки действующего кода у вас выше.


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

А оптимальность и прозрачность, как таковые, можно объективно измерить либо вычислить.

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

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

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

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

user posted image
twin
Цитата (chee @ 2.11.2014 - 08:05)

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

А и не надо, ибо это огромный плюс. Я могу использовать в приложении ваши наработки, вы мои - нет. У кого больше возможностей? smile.gif Что бы не спорить скажу. У меня.

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

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

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

user posted image
twin
Упс... Что я вижу... Вот оно, и началось. Когда код так расползается, начинаются проблемы.

Цитата
class AllAction extends AbstractAction
{

    public function action(\Animal $animal)
    {
        $animal->doJump();
        if (!($animal instanceof Fish)) {
            $animal->doVoice();
        }
        $animal->doMoveTail();
    }

}


Это хардкод. А он неминуемо приводит к багам. Вот и всё, дальше рассуждать о прозрачности нет смысла, ты сам запутался в своем коде.

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

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

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

user posted image
chee
Цитата (twin @ 2.11.2014 - 12:09)
Для меня он адъ и израиль, для тебя аналогично выглядит мой код.

ваш код для меня понятен и довольно логичен, исходя из тех утверждений что вы тут пишите.
Цитата (twin @ 2.11.2014 - 12:09)
Это не так. Все зависит от конкретных условий. Вот к примеру с глазками править придется не один класс. Причем придется сначала добавить класс MoveВlink, потом добавить реализацию в каждый класс животного. Как минимум свойство, если рассматривать наш пример. Он просто сейчас пустой, вот и кажется, что мало работы. Нет, все предется перелопатить. Большинство действующих классов. И вероятность багов совершенно не уменьшается.

Да, я там ошибся придется править два класса, извините, то сообщение подправил.
Цитата (twin @ 2.11.2014 - 12:09)
Оптимальность сравнивается по потреблению ресурсов и времени работы скрипта.
Прозрачность обратно пропорциональна количеству и прямо пропорционально простоте кода.

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

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
chee
Цитата (twin @ 2.11.2014 - 12:21)
Это хардкод. А он неминуемо приводит к багам. Вот и всё, дальше рассуждать о прозрачности нет смысла, ты сам запутался в своем коде.

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

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


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

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

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

user posted image
twin
Цитата (chee @ 2.11.2014 - 08:35)
Цитата (twin @ 2.11.2014 - 12:21)
Это хардкод. А он неминуемо приводит к багам. Вот и всё, дальше рассуждать о прозрачности нет смысла, ты сам запутался в своем коде.

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

Это не инкапсуляция, а хардrод. Давайте так. На одной странице рыба пусть молчит, а на другой разговаривает. Ну золотая. Как быть?

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

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

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

user posted image
chee
twin, если подвести итоги беседы то ваши подходы вполне логичны на текущих примерах и в принципе не сильно отличаются от моих, по качеству и поддерживаемости. Но как уже говорилось выше: ООП нужен не для hello world, а для довольно сложных вещей с кучей сущностей и действий. Я больше чем уверен, что при дальнейшем усложнении системы, ваш код начнет "костылять"

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

Пока закостылял ваш. Причем на простой. На сложной ООП системе очень часто костылей чуть больше чем полностью.

Давайте попробуем без костылей и исправлений классов сделать условие про рыбок на разных страницах. Тогда и посмотрим.

И я готов потягаться и на сложной системе. Если этот пример кажется слишком простым. Фишка в том, что сложной систему как раз и делает ООП парадигма. Императив многое упрощает. А результат один. При всех внешних преимуществах.

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

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

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

user posted image
chee
Цитата (twin @ 2.11.2014 - 12:40)
Это не инкапсуляция, а хардrод. Давайте так. На одной странице рыба пусть молчит, а на другой разговаривает. Ну золотая. Как быть?


class AllAction2 extends AbstractAction
{

public function action(\Animal $animal)
{
$animal->doJump();
$animal->doVoice();
$animal->doBlink();
$animal->doMoveTail();
}

}


можно так. а можно провести рефакторинг.

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

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

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

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

user posted image
chee
twin, не все решения являются правильными с самого начала. Советую читать почитать, http://www.ozon.ru/context/detail/id/1308678/.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
chee
twin, ну еще, не надо делать каких-то выводов о всем ООП, на основе моего кода. Возможно бы другие программисты, решили эту задачу по другому, не допустив тех оплошностей при проектировании, которые допустил я. smile.gif


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
S.Chushkin
Цитата (chee @ 2.11.2014 - 12:54)
twin, ну еще, не надо делать каких-то выводов о всем ООП, на основе моего кода. Возможно бы другие программисты, решили эту задачу по другому, не допустив тех оплошностей при проектировании, которые допустил я.  smile.gif

Вот именно, - мы все делаем ошибки, увы. IMHO, ООП позволяет меньше делать ошибок.
Например, если условия усложняются: любое может не подавать голос, если оно спит, кроме рыжих кошек. То это решается простым изменением двух классов - Зверушки и Кошки. Больше ничего не трогается, что уменьшает вероятность ошибки по сравнению с правкой в большем количестве мест, я так думаю.


_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
Быстрый ответ:

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