133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
|
||||||
1 | ||||||
Что здесь не правильно с точки зрения ООП01.09.2016, 17:46. Показов 1620. Ответов 25
Метки нет (Все метки)
Делаю себе классы для авторизация через разные соц.сети (в сети есть решения)Но мне не нужен чужой велосипед.
Я хочу свое, ибо так я изучаю и вникаю в ООП , пока сам не напишу не вникаю в чужое. Я большую часть своих классов пишу с использование private\public - static Часто использую статические методы.На сколько это дурной подход?? Просто если без использования статики, я не могу например сохранить в $appID какое то значение , что бы потом внутри класса мог к нему обратиться и взять оттуда что мне надо. Поэтому я использую статику, т.к он мне позволяет это сделать.
А не я немного ошибся, у меня тут public static function auth статический метод, поэтому я не мог использовать то что в комментариях. Но все равно , хочу услышать на сколько это неверно
0
|
01.09.2016, 17:46 | |
Ответы с готовыми решениями:
25
Как вынести определённый механизм в отдельный класс и затем обращаться к нему и правильно ли это с точки зрения ООП Программа с точки зрения ООП C# правильность кода с точки зрения ООП Оценить код с точки зрения принципов ООП и корректность в целом |
Max Dark
|
|||||
01.09.2016, 18:13
#2
|
|||||
Не по теме: Для сборки URL лучше использовать функцию http_build_query
0
|
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
|
|
01.09.2016, 18:15 [ТС] | 3 |
Cra3y, Об этой фукнции я знаю, но пока она мне не нужна.
спасибо конечно, Но я бы хотел комментарии по коду и по конкретному моему вопросу, про статические методы , плохо и почему ли?
0
|
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
|
|
01.09.2016, 19:37 | 4 |
В чём необходимость объявления метода
auth статичным? По-моему, нет необходимости. Тем более, что он обращается к свойству, значение которого устанавливается при создании объекта.
0
|
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
|
|
01.09.2016, 19:40 [ТС] | 5 |
Para bellum, Это я каюсь, я ошибся, привычка уже вырабатывается писать static
Вот и спрашиваю насколько это ужасно и плохо? Я бы тоже не отказался бы от статьи где подробно бы объяснили в каких ситуациях использовать static методы.Ну или человеческим языком Пытаюсь читать книги по ООП , но не нахожу Понятного для меня объяснения , в каких случаях использовать static, protected , ....
0
|
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
|
01.09.2016, 20:02 | 6 |
Это можно понять по:
Раз вы не можете из-за этого нормально использовать класс, значит надо обычный метод использовать. static принадлежит классу, а не объекту, из этого и исходим.
1
|
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
|
|
01.09.2016, 20:05 | 7 |
1
|
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
|
||||||
01.09.2016, 20:25 [ТС] | 8 | |||||
А можно вопрос по этому? я встречал где то в кодах, чужих, это типо класс пишет перед параметром.
Как это называется и где почитать Я про это Database $database в параметрах конструктора
0
|
шКодер самоучка
|
|
01.09.2016, 20:29 | 9 |
Внедрение зависимостей(Dependency injection)
0
|
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
|
|
01.09.2016, 20:42 [ТС] | 10 |
Cra3y, Это что получается Что мы в свойство класса можем положить объект другого класса и обращаться к нему из текущего ? для этого паттерн внедрение зависимостей?
0
|
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
|
01.09.2016, 20:50 | 11 |
Указывает, что в эту переменную можно передать только объект класса Database.
Аналогично работает function test(array $data) - можно передать только массив (к сожалению, допустимо только для объектов и массивов, для других типов данных не работает).
2
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
01.09.2016, 20:55 | 12 |
1
|
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
|
|
01.09.2016, 21:00 [ТС] | 13 |
Jodah, А ну помню помню, я когда то экспериментировал писал туда типы данных, и у меня не работало кроме array().
Jewbacabra, Это хорошо, т.к я последнее время в основной сижу на 7 версии.
0
|
шКодер самоучка
|
|
01.09.2016, 21:08 | 14 |
Нет.
Внедрение зависимостей упрощает замену реализаций компонентов. В общем смысл в том что мы объявляем интерфейс(список методов которые нам требуются), а реализации предоставляют этот интерфейс и их(реализаций) может быть много. При создании объекта мы передаем объект, реализующий данный интерфейс Не по теме: Честно говоря, я не знаю как это объяснить по простому - сам до конца еще не въехал :D
1
|
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
|
01.09.2016, 21:09 | 15 |
Jewbacabra, ооо, точно, нашёл в документации, спасибо!
0
|
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
|
|
02.09.2016, 06:37 | 16 |
Это называется type hints. В принципе, Вам ответили, для чего это. Говорю для того, чтобы в поисковике запрос могли задать правильный, если более подробно нужно будет изучить.
Добавлено через 9 минут Вот тут подробнее: http://php.net/manual/ru/langu... inting.php Там написано:
1
|
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
|
|
02.09.2016, 12:02 [ТС] | 17 |
Para bellum, я понял уже , особо не вижу пока задач где это нужно
0
|
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
|
|
02.09.2016, 13:27 | 18 |
Это очень полезная вещь и много где нужна. Нет, можно и без неё, конечно. Но тогда приложение будет работать в режиме "бог не выдаст -- свинья не съест".
0
|
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
|
|||||||||||
07.09.2016, 07:41 | 20 | ||||||||||
User гарантированно есть метод getBalance .Таким образом, уточняя тип в методе addUser , мы знаем, что метод getSumBalance будет оперировать исключительно с объектами пользователей, в которых точно есть метод getBalance . Значит, никаких ошибок не возникнет.Теперь посмотрим, что будет, если не уточнять тип и положиться на "ну, и так ясно, что туда нужно только объекты User передавать":
1
|
07.09.2016, 07:41 | |
07.09.2016, 07:41 | |
Помогаю со студенческими работами здесь
20
Если два метода выполняют одно и то же - с точки зрения программы, но разное - с точки зрения логики? Правильно ли составлены запросы с точки зрения безопасности? Как правильно сделать с точки зрения реляционных БД Правильно ли составлен текст программы с точки зрения синтаксиса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |