соглашение об именах для двух интерфейсов для одного объекта - PullRequest
4 голосов
/ 18 января 2010

Я работаю над проектом по разработке покерного бота, я должен хранить состояние каждой сыгранной руки. Я хотел сделать это через объект - однако Players может читать только из состояния, а Dealer разрешено писать в состояние. Я подумал, что хороший способ решить эту проблему - заставить объект HandState реализовать 2 интерфейса (один для игроков и один для дилера), однако у меня возникают проблемы с их именами, поскольку я не могу придумать логических имен, отличных от IHandState, какое-то соглашение, чтобы иметь дело с этими вещами? Кто-нибудь испытывал нечто подобное?

Спасибо

Ответы [ 6 ]

3 голосов
/ 18 января 2010

PlayerStateHandler и DealerStateHandler

Как правило, мои интерфейсы содержат -er или -able

3 голосов
/ 18 января 2010

PlayerActions и DealerActions

или

PlayerAware и DealerAware

1 голос
/ 18 января 2010

Чтобы ответить на вашу проблему, а не на ваш вопрос: предпочитайте композицию наследованию (включая наследование интерфейса).

Также у меня складывается впечатление, что у вас плохая инкапсуляция с использованием методов получения и установки вместо значимых операций.,Если вы улучшите абстракции, все станет яснее.

1 голос
/ 18 января 2010

А как насчет DealerState и PlayerState?

0 голосов
/ 18 января 2010

У вас есть один объект состояния, назовите его класс HandState.

Заставьте его реализовать два интерфейса. Назовите их IWriteable и IReadable

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

0 голосов
/ 18 января 2010

обычно интерфейс будет иметь прилагательное имен. поэтому я предпочитаю IStateable

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...