Piszę grę w Typescript i postanowiłem, że spróbuję zastosować się do idei „ programowania opartego na interfejsie ”, w którym piszesz kod oparty na interfejsie zamiast implementacji obiektu.
Napisałem sporo interfejsów i klas, które je implementują, a następnie cofnąłem się i zdałem sobie sprawę, że klasy były na tyle proste, że prawdopodobnie nigdy nie będę musiał zmieniać implementacji, ponieważ tak naprawdę jest tylko jeden sposób, aby zrobić to, co klasa robi (poruszając się Phaser.Sprite
w ograniczony sposób, aby zachowywać się jak czołg).
Potem pamiętam, jak przeczytałem kilka lat temu o idei YAGNI , która polega zasadniczo na tym, że nie powinieneś nadmiernie konstruować swojego kodu, aby zawierał rzeczy, których nigdy nie możesz użyć.
Czy zgodnie z najlepszymi praktykami każda klasa powinna implementować interfejs, czy też powinna ograniczyć się do klas, które mogą zostać w przyszłości zamienione?