Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Основополагающие принципы ООП
Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2012
Помог: 0 раз(а)
Здравствуйте, господа!
Я начинающий программист. И мне необходимо узнать некоторые основополагающие, базовые принципы ООП. Конечно, существует множество книг по ООП, но нигде не рассматриваются, например, такие вопросы:
* как правильно писать методы? должны они возвращать что-то, или наоборот, записывать свойства класса?
* что лучше принять за объект?
* как избежать ошибки проектирования ещё на начальной стадии?
Буду также признателен за познавательную литературу по теме.
Мелкий
Отправлено: 16 Апреля, 2012 - 16:20:13
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
burn пишет:
нигде не рассматриваются, например, такие вопросы:
Макконнелл, "Совершенный код", первые 2 вполне затрагиваются.
На последний вопрос ответ однозначен - начинающему невозможно. Опыт, опыт, опыт.
Покинул форум
Сообщений всего: 77
Дата рег-ции: Март 2012
Помог: 0 раз(а)
burn пишет:
Здравствуйте, господа!
Я начинающий программист. И мне необходимо узнать некоторые основополагающие, базовые принципы ООП. Конечно, существует множество книг по ООП, но нигде не рассматриваются, например, такие вопросы:
* как правильно писать методы? должны они возвращать что-то, или наоборот, записывать свойства класса?
* что лучше принять за объект?
* как избежать ошибки проектирования ещё на начальной стадии?
Буду также признателен за познавательную литературу по теме.
1, если нужно, тогда да. хотя я сомневаюсь, в правильности своего ответа.
2, в проэктировании есть такие понятия как доменный объект, абстракция, сущность...
3, как сказано выше "опыт, опыт, опыт", можно почитать страуструпа, там есть пару глав о проектировании и достаточно много практических советов в конце главы.
Цитата:
1. Делайте осознанные решения по способам использования классов
(осознанные как проектировщиком, так и пользователем); §25.1.
2. Учитывайте достоинства и недостатки применения разных видов классов;
§25.1.
3. Используйте конкретные типы для представления простых независимых
концепций; §25.2.
4. Используйте конкретные типы для представления концепций, для которых
важна близкая к оптимальной эффективность; §25.2.
5. Не наследуйте от конкретного класса; §25.2.
6. Используйте абстрактные классы для представления интерфейсов в случаях,
когда реализации объектов могут варьироваться; §25.3.
7. Используйте абстрактные классы для представления интерфейсов в случаях,
когда разные реализации объектов должны сосуществовать; §25.3.
8. Используйте абстрактные классы для предоставления новых интерфейсов
к уже существующим типам; §25.3.
9. Используйте узловые классы там, где схожие концепции разделяют большую
часть реализации; §25.4.
10. Используйте узловые классы для постепенного расширения реализации;
§25.4.
11. Используйте RTTI для выявления интерфейса объекта; §25.4.1.
12. Используйте классы для ассоциации действий с состоянием (данными);
§25.5.
13. Используйте классы для представления действий (операций), которые нужно
сохранять, передавать или откладывать их выполнение; §25.5.
14. Используйте интерфейсные классы для адаптирования классов к новым
способам их использования (без модификации самих классов); §25.6.
15. Используйте интерфейсные классы, чтобы добавить проверки; §25.6.1.
16. Применяйте дескрипторы, чтобы избежать непосредственного
использования указателей или ссылок; §25.7.
17. Применяйте дескрипторы для управления разделяемыми представлениями;
§25.7.
18. Применяйте прикладные среды разработок в тех областях, где особенности
программ допускают их стандартную структуру; §25.8.
(Добавление)
burn пишет:
такие вопросы не рассматриваются потому что рассматривать их нет смысла
В Страуструпе написано, что лучше использовать 0 вместо NULL. Опечатка? или почему?
----- рожден стоячим
caballero
Отправлено: 18 Апреля, 2012 - 16:03:28
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
В Страуструпе написано, что лучше использовать 0 вместо NULL. Опечатка? или почему?
смотря где
слишком абстрактный вопрос.
А если читать страуструпа то надо С++ изучать а не PHP
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
caballero пишет:
А если читать страуструпа то надо С++ изучать а не PHP
Разве одно другому мешает?
----- PostgreSQL DBA
ferz
Отправлено: 18 Апреля, 2012 - 16:18:26
Гость
Покинул форум
Сообщений всего: 77
Дата рег-ции: Март 2012
Помог: 0 раз(а)
caballero пишет:
Цитата:
В Страуструпе написано, что лучше использовать 0 вместо NULL. Опечатка? или почему?
смотря где
слишком абстрактный вопрос.
А если читать страуструпа то надо С++ изучать а не PHP
Так где что использовать? и почему? плюсы я уже знаю!
----- рожден стоячим
eai
Отправлено: 19 Апреля, 2012 - 14:37:30
Частый посетитель
Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009 Откуда: Петроград
Помог: 10 раз(а)
Цитата:
В Страуструпе написано, что лучше использовать 0 вместо NULL. Опечатка? или почему?
Не надо понимать все в лоб.
Лично я использую NULL c указателями.
Мне так легче код читать.
ЗЫ я кстати такого не помню
Цитата:
А если читать страуструпа то надо С++ изучать а не PHP
C++ должен выучить любой человек который хочет называть себя программистом, потому что он дает понимание "как оно работает".
Я бы рекомендовал такую последовательность
BASIC - как алгоритмический язык
Pascal - привыкание к строгой типизации
С - начинаем понимать суть процессов в компьютере
С++ - ОПП строго и по правилам
PHP + JS - привет WEB и быстрая разработка и хаос
Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2012
Помог: 0 раз(а)
Цитата:
Я бы рекомендовал такую последовательность
BASIC - как алгоритмический язык
Гг, вот уж BASIC я НИКОМУ и НИКОГДА рекомендовать бы не стал, дабы не насиловать ещё юный и девственно чистый мозг будущего программиста, это влечет за собой необратимые последствия, после которых человек программистом может и не стать. (Добавление)
Короче, я понял, что действительно компетентных людей здесь мало... Первым постом было сказано всё. Мелкий, спасибо!
Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009 Откуда: Петроград
Помог: 10 раз(а)
burn пишет:
Гг, вот уж BASIC я НИКОМУ и НИКОГДА рекомендовать бы не стал, дабы не насиловать ещё юный и девственно чистый мозг будущего программиста, это влечет за собой необратимые последствия, после которых человек программистом может и не стать.
Ерунда, он дает быстро и легко основные понятия алгоритмических языков без излишних сложностей
Вот яву я бф запретил
burn
Отправлено: 19 Апреля, 2012 - 14:51:05
Новичок
Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2012
Помог: 0 раз(а)
Да что смысла флуд разводить, ты меня не переубедишь, я тебя... Фу, ненавижу basic недоязык
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.