Скажем, у меня есть следующая структура:
abstract class Hand {}
class Rock extends Hand {}
class Paper extends Hand {}
class Scissors extends Hand {}
Цель состоит в том, чтобы сделать функцию (или метод) Hand::compareHands(Hand $hand1, Hand $hand2)
, которая вернет выигрышную руку в совпадение с кассовыми ножницами.
Это было бы очень легко с пучком if
s, но дело в том, чтобы иметь более надежную структуру, основанную на полиморфизме, а не на процедурном коде.
P.S. это делается в фактическом производственном коде, если кто-то спрашивает. Это не вызов или домашнее задание. (Это не каменные ножницы, но вы понимаете).