Digamos que eu tenho uma classe Enemy, e o construtor seria algo como:
public Enemy(String name, float width, float height, Vector2 position,
float speed, int maxHp, int attackDamage, int defense... etc.){}
Isso parece ruim porque o construtor tem muitos parâmetros, mas quando eu crio uma instância Enemy, preciso especificar todas essas coisas. Também quero esses atributos na classe Enemy, para que eu possa percorrer uma lista deles e obter / definir esses parâmetros. Eu estava pensando em talvez subclassificar o Inimigo no EnemyB, EnemyA, enquanto codificava seu maxHp e outros atributos específicos, mas então eu perderia o acesso aos seus atributos codificados se quisesse percorrer uma lista de Enemy (consistindo em EnemyA, EnemyB e Do InemyC).
Eu só estou tentando aprender a codificar de forma limpa. Se isso faz diferença, eu trabalho em Java / C ++ / C #. Qualquer ponto na direção certa é apreciado.