Sto scrivendo un gioco in Typescript, e ho deciso di andare a provare ad aderire all'idea di " programmazione basata sull'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 un solo modo per fai ciò che fa la classe (spostando una Phaser.Sprite
in un modo limitato per comportarti come un carro armato).
Poi mi ricordo di aver letto alcuni anni fa l'idea di YAGNI , che fondamentalmente non dovresti t sovra-ingegnerizzare il tuo codice per includere cose che potresti non usare mai.
Seguendo le best practice, ogni classe dovrebbe implementare un'interfaccia, o dovrebbe limitarla a classi che si prevede possano essere potenzialmente scambiate in futuro?