🐴
нуканука
🐴
а как надо?
Sergey
хз)
Sergey
changeRole
Sergey
хотя бы
Sergey
а то стратегии какие-то
Sergey
"студент" это не стратегия, это по сути состояние души)
🐴
ну setRole()
🐴
setBehavior()
Sergey
почему setRole?
Sergey
почему не changeRole?
🐴
что значит change?
🐴
в чем отличие от set?
Ale
$vasya->expell();
Sergey
`As a teacher, I want to deduct student from course in order to punish him"
Sergey
$colonel->summon($vasia)
Ale
$teacher->expell($vasya);
хотя скорее так
Sergey
а да, expell
🐴
там и будет setRole
Ale
deduct вроде про налоги, я тож сначала подумал так написать)
Ale
не
Ale
там просто $vasya->role = null;
Ale
они ж одного класса
Ale
ну или приватный метод какой-нибудь
🐴
Ale
private
Ale
само собой
Sergey
паблик фуу
объекты одного типа имеют доступ к приватному состоянию друг друга
🐴
а кто у нас одного типа?
Ale
никаких public(только редко в дто) и никогда protected(никогда как наследование)
Ale
🐴
Sergey
но вообще метод expell должен быть у Teacher
🐴
метод expell должен быть у SchoolClass
Sergey
хз, у меня сейчас у класса User есть методы becameMerchant(MerchantAccountMaker $maker) и т.д.
🐴
или у StudentGroup
Sergey
не дает да
Sergey
в целом хороший вопрос... дай подумать
Ale
ну да, потому что у интерфейса его нет. becameExpelled()
Ale
тогда будет)
Ale
ну или leaveUniversity хз
Sergey
хм...
Sergey
погоди
Sergey
а разве студент что-то знает об университете?
Ale
а знает?
Sergey
нет
Ale
тогда не будет)
Sergey
и отчисляет не преподаватель, а деканат
🐴
класс знает о студенте
🐴
деканат тоже знает
Ale
вообще как @f3ath предложил, school некий
Ale
отчисляет
🐴
метод $school->expell($vasya) вызывется изнутри деканата
🐴
так же как до этого вызвался $school->enroll($vasya)
Ale
вообще, решение об отчислении принимает school, но как к этому привязан учитель?
Ale
он должен что-то сказать school о student
Sergey
учитель подает запрос на отчисление
Ale
что именно?
Ale
failedExam?
Sergey
ну или да
Sergey
скорее так
Sergey
3 зафэйленных экзамена - отчислен
Ale
$teacher->markAsFailed($exam, $vasya);
Пантелеев
Ебать у вас тут дискуссия
Пантелеев
Вы что профессора?
🐴
Sergey
почему варнинг?
Ale
ну а чего вдруг school ворнинг делает
Ale
они бывают мямли
Sergey
хм....
Ale
бывают жесткие
Sergey
забавно можно раскрутить пример)
Ale
Ale
причем у каждого учителя эти предупреждения вообще по-своему работают