Digamos que tengo una clase de Enemigo, y el constructor se vería así:
public Enemy(String name, float width, float height, Vector2 position,
float speed, int maxHp, int attackDamage, int defense... etc.){}
Esto se ve mal porque el constructor tiene muchos parámetros, pero cuando creo una instancia de Enemy necesito especificar todas estas cosas. También quiero estos atributos en la clase Enemy, para poder iterar a través de una lista de ellos y obtener / establecer estos parámetros. Estaba pensando en subclasificar Enemy en EnemyB, EnemyA, mientras codificaba su maxHp y otros atributos específicos, pero luego perdería el acceso a sus atributos codificados si quisiera recorrer una lista de Enemy (que consta de EnemyA, EnemyB y EnemyC's).
Solo estoy tratando de aprender a codificar limpiamente. Si hace la diferencia, trabajo en Java / C ++ / C #. Cualquier punto en la dirección correcta es apreciado.