@prophp7

Страница 863 из 1387
Sergey
07.01.2018
15:06:06
ссылка выше адресом
ты о том что я тебе сказал убрать кучу ифов и заменить на метод supports явно разделив кто решает какая стратегия должна выполняться?

Konstantin
07.01.2018
15:06:18
угу

у меня не стыковка в башке

тогда получается эти ифы лезут в сами стратегии

Google
Konstantin
07.01.2018
15:07:31
и у меня чет это не вяжется в голове это

Sergey
07.01.2018
15:07:46
> Класс навигатора будет иметь метод установки новой стратегии, что позволит на лету изменять стратегию поиска пути.

в твоем случае за выбор стратегии отвечал сам этот "навигатор"

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

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

Konstantin
07.01.2018
15:09:14
нифига не понял, но спасибо ))

т.е. по сути навигатор - это мой яблочный спас

Sergey
07.01.2018
15:10:48
нифига не понял, но спасибо ))
почитай еще про chain of responsibilities. Это по сути гибрид

Konstantin
07.01.2018
15:11:06
и туды суппортс

Sergey
07.01.2018
15:11:17
и туды суппортс
суппортс в стратегию конкретную

Konstantin
07.01.2018
15:11:31
а

и туда же условия

Google
Konstantin
07.01.2018
15:11:44
и иначе фолс отдавать

Sergey
07.01.2018
15:11:51
ну то есть логика такая: для всех стратегий: если стратегия это могет вызвать стратегию

Konstantin
07.01.2018
15:11:54
а в спасе форычем обходить уже

которая тру

ту и берем

Sergey
07.01.2018
15:12:08
но я не разбирался нафига тебе там стратегии)

Konstantin
07.01.2018
15:12:27
ну типа яблоки там отдаются только четные или только нечетные

и есть 3 варианта

Sergey
07.01.2018
15:12:33
есть мнение что можно было бы сделать элегантнее но мне было лень читать требования

Konstantin
07.01.2018
15:12:36
у юзера нет яблок - отдать любое

у юзера есть четное яблоко - отдать следующее четное

у юзера нечетное яблоко - отдать следующее нечетное

Sergey
07.01.2018
15:13:14
мне все еще лень читать)

Konstantin
07.01.2018
15:13:19
как элегантнее - я хз, пока не придумал

ёпт, 3 строчки лень читать ? Вот это уровень ))

а если серьезно, то что бы ты тут выбрал ?

Maksim
07.01.2018
15:16:24
оставить как есть и не убивать N часов на мифическую проблему))

Konstantin
07.01.2018
15:16:53
это проблема на 150килорублей

думаю можно и убить n часов

Maksim
07.01.2018
15:17:21
врядли 150килорублей стоят именно эти 3 ифа)

Google
Konstantin
07.01.2018
15:18:56
в принципе это все задание

там еще пара мелких условий

но они не принципиальны

Sergey
07.01.2018
15:20:27
> таким образом юзеры делятся на 3 типа: 1 тип - яблок нет - берем любое. 2 тип яблоки четные - берем только четные, если есть. 3 тип берем ток нечетные, если есть кто знает какие у юзера яблоки? четные или нечетные? Как ты определяешь это?

Konstantin
07.01.2018
15:21:14
бд знает

Sergey
07.01.2018
15:21:24
бд ничего не знает, она все хранит

Konstantin
07.01.2018
15:21:28
у яблока айдишник юзера есть

который взял

крч яблоко знает

Sergey
07.01.2018
15:21:46
то есть яблоко знает кто его взял и какое оно - четное или нечетное

Konstantin
07.01.2018
15:22:09
угу

Sergey
07.01.2018
15:22:12
зачем яблоку знать кто его взял?

Sergey
07.01.2018
15:22:53
пользователь знает какие яблоки он взял. И соответсвенно если у него есть оные то они либо все четные либо все нечетные, так?

Konstantin
07.01.2018
15:23:01
ну

а, ну да

я по юзеру и смотрю

туплю прост

Sergey
07.01.2018
15:24:39
user.takeApple(apples) и внутри что-то типа apples.likeThis(this.apples.last())

Konstantin
07.01.2018
15:25:38
ну это условие

а лайк типа говорит, какое яблоко отдать ?

Google
Sergey
07.01.2018
15:27:12
ну типа ты даешь сэмпловое яблоко коллекции и та уже разруливает какие тебе давать)

либо надо у поставщика трекать какие яблоки ты выдавал ранее

Konstantin
07.01.2018
15:27:42
нуу хз, хз

а мой вариант тебе чем не нравится ?

Sergey
07.01.2018
15:28:06
я не вижу тут стратегий

задачу тебе дали какую - стратегии туда запихнуть или просто задачу?

Konstantin
07.01.2018
15:28:40
if($this->user->apples->count() && $this->user->apples->first()->id % 2 == 0){ return Apple::Even()->get(); }

Sergey
07.01.2018
15:28:57
и я тебе потому и говорил почитать про закон деметры

Konstantin
07.01.2018
15:29:03
не, просто задачу. Я прикинул - вроде сойдет

я прочитал

Admin
ERROR: S client not available

Sergey
07.01.2018
15:29:32
> $this->user->apples->count() прощей инкапсуляция, сокрытие информации, здравствуй высокая связанность

Konstantin
07.01.2018
15:29:41
там про слабую связанность

я прост с трудом вкуриваю, как здесь сделать слабую связанность

а ты ща говоришь на непонятном для меня языке ))

Sergey
07.01.2018
15:31:09
1. кто выдает яблоки? 2. что этот кто-то должен знать о том где пользователь яблоки хранит? может быть он не хочет этого знать

Konstantin
07.01.2018
15:31:36
корзина выдает яблоки

корзине похер как юзер яблоки хранит

главное, чтобы он нужное получил

Sergey
07.01.2018
15:32:03
> user->apples->count() ну вот не похер же)

Google
Sergey
07.01.2018
15:32:11
оно знает как оно их хранит

Konstantin
07.01.2018
15:32:19
ну дык это юзер

Sergey
07.01.2018
15:32:49
> $this->user->apples->count() судя по $this->user это не юзер

это кто-то другой знает как хранятся яблоки

Konstantin
07.01.2018
15:33:10
это спаситель яблок )

он знает )

Sergey
07.01.2018
15:33:24
ну вот а не должен

Like
07.01.2018
15:34:46
> $this->user->apples->count() судя по $this->user это не юзер
А для чего предназначен метод который это юзает?

Sergey
07.01.2018
15:34:55
есть два варианта: - корзина получает ID юзера который просит яблоко и закрепляет за ним что этот юзер в предь будет получать только четные/нечетные - корзина будет получать сэмпловое яблоко - типа "дай еще таких". И уже будет разруливать че как брать. Так мы уменьшим связанность

А для чего предназначен метод который это юзает?
спасать яблоки (выдавать вернее)

но это не точно

Konstantin
07.01.2018
15:36:17
он нужен для того, чтобы яблоки юзеру сохранять

Like
07.01.2018
15:36:23
Ааа, сохранять

Konstantin
07.01.2018
15:37:09
я думаю так. Что юзер должен знать, какие яблоки брать

яблоко должно просто иметь айдишник

а корзине похуй че отдавать

если уж в реале

пусть юзер копошится и нужное яблоко ищет

тогда юзер имеет метод тейк эпл

берет яблоко

смотрит его и решает, захавать его совсем или нет

и тогда все логично. Юзер знает, как он хранит яблоки и какое ему нужно

остальным насрать: что яблокам, что корзине

Страница 863 из 1387