Как с точки зрения ООП реализовать проверку доступов?

Есть 2 класса (Человек и собака). Есть 2 экземпляра человека и 1 собака. Человек А хозяин собаки. Человек Б дресеровщик. У собаке может быть много хозяев, а у человека много собак.
Условие: Собаку может гладить только её хозяин. Дресеровщик может гладить любую собаку.
Как правильно построить классы, какие проверке где должны быть с точки зрения ООП?
Конкретный вопрос: Собака должна знать что её может гладить дресеровщик , или она должна спрашивать у человека может ли он её гладить?
При условии что потом могут добавится коты, которых могут гладить и хозяева и дети. А потом добавятся бабушки которые могут гладить всех.
  • Вопрос задан
  • 178 просмотров
Пригласить эксперта
Ответы на вопрос 1
saboteur_kiev
@saboteur_kiev
software engineer
"Конкретный вопрос: Собака должна знать что её может гладить дресеровщик , или она должна спрашивать у человека может ли он её гладить? "
Это вопрос к вам, а не к коду.

В класс собаки добавьте массив "хозяева", "дрессировщики" и добавляйте туда хозяев и дрессировщиков.
Сделайте у собаки метод "погладить", потому что именно собака может быть поглаженно, и проверяйте кто пытается вызвать этот метод - входит ли он в списки "хозяев".
В метод можно добавить исключение, что если гладит "бабушка", она не обязана находится в списке.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы