Estou escrevendo um jogo no Typescript e decidi que tentaria aderir à idéia de " programação baseada em interface ", na qual você escreve código com base em uma interface, em vez da implementação, de um objeto.
Eu escrevi um bom número de interfaces e classes que as implementam. Depois, dei um passo para trás e percebi que as classes eram simples o suficiente para que eu provavelmente nunca precisasse alterar a implementação, pois há realmente apenas uma maneira de fazer o que o classe faz (mover um de Phaser.Sprite
maneira restrita para agir como um tanque).
Então, lembro-me de ler alguns anos atrás sobre a idéia do YAGNI , que é basicamente que você não deve exagerar na engenharia do seu código para incluir coisas que você nunca pode usar.
Seguindo as práticas recomendadas, todas as classes devem implementar uma interface ou você deve limitá-las às classes que você espera que sejam potencialmente trocadas no futuro?