Estoy escribiendo un juego en Typecript, y decidí al entrar que iba a tratar de adherirme a la idea de " programación basada en interfaz ", donde escribes código basado en una interfaz, en lugar de la implementación, de un objeto.
Escribí una buena cantidad de interfaces y clases que las implementan, luego di un paso atrás y me di cuenta de que las clases eran lo suficientemente simples como para que nunca necesite cambiar la implementación, ya que en realidad solo hay una forma de hacer lo que clase hace (mover una Phaser.Sprite
de forma restringida para actuar como un tanque).
Entonces recuerdo haber leído hace unos años sobre la idea de YAGNI , que básicamente es que no debes manipular excesivamente tu código para incluir cosas que quizás nunca uses.
Siguiendo las mejores prácticas, ¿debería cada clase implementar una interfaz, o debería limitarla a clases que espera que se intercambien en el futuro?