[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Зачем так делают?
Страницы: 1, 2, 3, 4, 5
chee
Я уже много раз встречал код где методы объявлены приватными, при том это классы, которые нужно точно будет расширять в будущем. Возникают вопросы, к всем тем кто так делает: что вас заставляет это делать? Неужели сложно сделать метод защищенным(protected)?

Особенно этот вопрос касается разработчиков опен-сорс проектов.

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

_____________
[продано копирайтерам]
chee
AllesKlar, а давайте вы не будете указывать что мне делать, ок?

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

_____________
[продано копирайтерам]
Игорь_Vasinsky
а.. ну раз указывать на то что делать ТС нельзя... я тоже ридонли.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
T1grOK
Не хочу создавать холиваров, просто почитайте книгу "Head First Design Patterns".

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
chee
Цитата (MiksIr @ 9.02.2014 - 20:25)
Я задаю этот вопрос на собеседовании - почему делают приватные методы, почему бы просто не объявить все протектед. Почти никто не отвечает.

понятно. А вы сами как думаете?
Цитата (T1grOK @ 9.02.2014 - 20:56)
просто почитайте книгу "Head First Design Patterns".

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

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
sergeiss
Цитата (chee @ 9.02.2014 - 20:00)
а давайте вы не будете указывать что мне делать, ок?

Цитата (chee @ 9.02.2014 - 21:26)
мне нужно ознакомиться с проектированием описаной в этой брашурке?


Однако, похоже, у ТС сильно зашкаливает ЧСВ...

Ты всегда так относишься к людям, у которых что-то спрашиваешь? Ну, т.е., спросил, а потом тут же кирпичом по голове, чтобы заткнулись. Да?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
chee
Цитата (sergeiss @ 9.02.2014 - 21:45)
Ну, т.е., спросил, а потом тут же кирпичом по голове, чтобы заткнулись. Да?

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

Да и вообще, зачем вы сейчас осуждаете мою манеру излагать мысли? Можете не отвечать, это риторический вопрос.

На счет открытой мной темы, то я погуглил за одним.
Люди это мотивируют несколькими причинами:
1. Скрытие реализации от наследуемых классов;
2. Уменьшение нагрузки на API класса, определение этого самого API;
3. Другие (в основном похожи по своим принципам на 1 и 2)

Второе я хоть как то могу принять, есть здравый в этом смысл. Но первое ...

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
chee
Цитата (MiksIr @ 9.02.2014 - 22:10)
Это основы ООП. Его базовые принципы.

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

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
linker
Базовые принципы ООП: абстракция, инкапсуляция, наследование и полиморфизм. Фигачить всё в private значит нарушать два принципа ООП из четырёх. Лично я использую private только тогда, когда не хочу чтобы потомки наследовали от предков, в остальных случаях public или protected.

_____________
Gear Framework
Gear Framework на Github
chee
linker почему тогда не использовать final ?

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

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