Sto scrivendo un gioco in Typescript, e ho deciso di provare ad aderire all'idea di " programmazione basata su interfaccia ", in cui si scrive codice basato su un'interfaccia, anziché sull'implementazione, di un oggetto.
Ho scritto un buon numero di interfacce e classi che le implementano, poi ho fatto un passo indietro e ho capito che le classi erano abbastanza semplici che probabilmente non avrò mai bisogno di cambiare l'implementazione, dal momento che c'è davvero solo un modo per fare ciò che il classe fa (muovendosi Phaser.Sprite
in modo limitato per comportarsi come un carro armato).
Poi ricordo di aver letto qualche anno fa l'idea di YAGNI , che in pratica non dovrebbe sovra-ingegnerizzare il tuo codice per includere cose che non potresti mai usare.
Seguendo le migliori pratiche, ogni classe dovrebbe implementare un'interfaccia o limitarla a classi che si prevede possano essere scambiate in futuro?