У вас есть один объект состояния, назовите его класс HandState
.
Заставьте его реализовать два интерфейса. Назовите их IWriteable
и IReadable
Затем создайте плеер, у него есть доступ к объекту типа HandState
, но доступ к нему осуществляется через интерфейс IReadable
. Аналогично, дилер получает доступ к HandState
через интерфейс IWriteable
.