Могу ли я поддерживать высокую сплоченность и следовать SRP в сложных классах? - PullRequest
0 голосов
/ 26 марта 2020

Я понимаю, в чем смысл SRP и что означает сплоченность класса. Тем не менее, я не уверен, как действовать в сценарии, который я немного упростил, но, надеюсь, все еще иллюстрирует суть - код представляет класс в простой игре. У класса есть одна цель - представить игрока, но, конечно, он делает много вещей. С точки зрения сплоченности, не многие методы разделяют поля. Должен ли я изменить его?

class Player
{
  int ID;
  string Name;
  int HP;
  int Mana;
  int MaxHp;
  int Max Mana;
  List<Item> items;
..

 void Chat() {}
 void Trade() {}
 void Attack()
 int CalculateDamage(){}
 void UseItem(){}
...
}
...