Java Аннотация VS Интерфейс в игре? Что я должен использовать? - PullRequest
0 голосов
/ 21 октября 2018

Какой из них лучше, когда я хочу создать несколько NPC и предметов, когда я хочу, чтобы они выполняли одни и те же действия, скажем, все NPC будут двигаться (), checkCollide (), в то время как у некоторых есть свои собственные уникальные поведения, такие как trade (), questGiving ()?В настоящее время я использую абстрактный, так как я не очень знаком с тем, как работает интерфейс и почему они более превосходят абстрактный класс

Ответы [ 2 ]

0 голосов
/ 21 октября 2018

В дополнение к ответу Доната, интерфейсы также позволяют вашим классам быть больше отделенными друг от друга, что обычно означает, что ваш код будет легче масштабировать.Например, если вы хотите позже добавить новые типы NPC, вы можете просто увеличить новые классы по контракту интерфейса или даже создать новые интерфейсы.Вы даже можете начать думать об использовании шаблонов проектирования, которые предполагают принятие таких решений, например шаблон проектирования Decorator .

0 голосов
/ 21 октября 2018

Интерфейсы лучше во многих случаях, потому что класс может расширять только один (и не более одного) класса, но вы можете реализовать столько интерфейсов, сколько захотите.Когда вы расширяете абстрактный класс, у вас уже есть наследование, и это сделает ваш класс менее гибким.

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