2013-09-10 2 views
0

Я делаю карточную игру, в которой различные карты имеют доступ к статически определенным способностям. Я не вижу необходимости в создании способностей непосредственно объектов-объектов, поскольку все их поля и методы различны. Мой вопрос: было бы хорошей идеей использовать статические вложенные классы для представления этих способностей или, может быть, есть более эффективная альтернатива?Должен ли я использовать статические вложенные классы для представления способностей в игре?

class Ability { 
... 
    static class Strike { 
    ... 
    } 

    static class Detonate { 
    ... 
    } 

    static class Dodge { 
    ... 
    } 
... 
} 
+2

является '' Strike' Ability'? –

+0

«более эффективный» ничего не значит. Трудно сказать вам, какой правильный дизайн без контекста. (Например, как и где будут использоваться «Способность» и «Удар» и т. Д.) – millimoose

+1

Это говорит о том, что это не важно. Попытка скрыть каждый класс, который не является частью поверхности API, кажется для меня чрезмерным педантизмом. – millimoose

ответ

3

Нет, вы должны расширить Ability класс, в отдельных .java файлов.

public class Strike extends Ability 
{ ... } 
public class Detonate extends Ability 
{ ... } 
public class Dodge extends Ability 
{ ... } 

Что Способности имеют в общем, должны быть помещены в Ability класса. комментарий

+0

Спасибо за ясный и короткий ответ! –

1

SotiriosDelimanolis должна дать вам подсказку «Забастовка IS способность» не то, что «способность ИМЕЕТ удар»