[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Объясните в чем преимущества ООП?
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18
twin
Библиотека обычно пишется для всего. Ты называешь это хаком, а это вообще то называется обновление. Если где-то понадобилась птичка, она может понадобиться и в другом месте. Значит добавим её в либу. Это улучшение продукта, а не хак.

Если это очень специфическая птичка, то не нужно тащить в либу, достаточно расширения.

Тут дело не в добавлении. Когда либа расширяется, можно изменить методы в наследнике.

Самое веселое то, что я могу одним движением изменить поведение всего приложения. Допустим очень много птичек, лошадок, осликов и так далее. И вдруг захотелось, чтобы они начали стоя какать радугой, а сидя бабочками. Сколько классов нужно исправить тебе? А я просто выпущу обновление либы и всё.

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

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

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

user posted image
Michael
Цитата (twin)
А я просто выпущу обновление либы и всё.

Это будет не либа, а огромная мусорка ненужного в данном проекте кода, который будет загружаться каждый раз и тратить ресурсы.

_____________
There never was a struggle in the soul of a good man that was not hard
twin
Ты не понял сути с колокольни своей безграничной любви к ООП. В либе не собираются все возможные действия объекта. Если мальчик хочет писить, подключается эта либа. Если какать - другая.

У вас все действия прописаны в классе, из которого создается объект. Этот объект умеет делать все, но хочет в данный момент только по малому. Так что еще нужно посмотреть, у кого больше мусора и кто больше засерает оперативку)))

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

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

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

user posted image
chee
twin я же написал, что мне бы хотелось увидеть код РЕАЛЬНОГО проекта, со сложной логикой. Неужели все ваши проекта про девочек, мальчиков, собачек и птичек, которых вы учите гавкать?

Если у вас есть репозитории на гитхабе или битбакете, я тоже не против посмотреть на них.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
Цитата (chee @ 31.10.2014 - 09:12)
twin я же написал, что мне бы хотелось увидеть код РЕАЛЬНОГО проекта, со сложной логикой. Неужели все ваши проекта про девочек, мальчиков, собачек и птичек, которых вы учите гавкать?

Если у вас есть репозитории на гитхабе или битбакете, я тоже не против посмотреть на них.

Не, нету ничего на гитхабе. Я слишком ленив и эгоистичен для этого.

И что значит "код реального проекта"? Слить сюда исходники с работы? biggrin.gif

Ну если интересно, тут есть кое-что. Правда тоже давно не обновлял.

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

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

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

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

protected function updateSocialNetwork(Account $account)
{
$socNetTypes = array('facebook', 'twitter');

foreach ($socNetTypes as $type) {
$newValue = $account->$type;
$oldValue = $account->fetched_row[$type];

if ($newValue == $oldValue) {
continue;
}

$oldSocialNetwork = Common::loadBean('apr_SocialNetwork', $account->fetched_row[$type . '_id']);
$newSocialNetwork = Common::loadBean('apr_SocialNetwork', $account->{$type . '_id'});

if (empty($newValue) && !empty($oldSocialNetwork->id)) {
$account->{$type . '_id'} = '';
$oldSocialNetwork->deleted = 1;
$oldSocialNetwork->doNotUpdateAccount = true;
$oldSocialNetwork->save();
continue;
}


$socialNetwork = $newSocialNetwork;
$socialNetwork->name = $newValue;
$socialNetwork->account_id = $account->id;
$socialNetwork->type_id = $type;
$socialNetwork->doNotUpdateAccount = true;
$socialNetwork->save();
$account->{$type . '_id'} = $socialNetwork->id;
}
}



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

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