Я пишу гру в Typescript, і вирішив, що я намагаюся дотримуватися ідеї " інтерфейсу на основі програмування ", де ви пишете код на основі інтерфейсу замість реалізації об'єкта.
Я написав велику кількість інтерфейсів і класів, які їх реалізують, потім зробив крок назад і зрозумів, що класи досить прості, що мені, ймовірно, ніколи не потрібно буде змінювати реалізацію, оскільки дійсно існує лише один спосіб зробити те, що клас робить (переміщення Phaser.Sprite
обмеженим способом, щоб діяти як танк).
Тоді я пам'ятаю, як читав кілька років тому про ідею YAGNI , яка в основному полягає в тому, що ви не повинні надмірно розробляти свій код, щоб включати речі, які ви ніколи не можете використовувати.
Дотримуючись найкращих практик, чи повинен кожен клас впроваджувати інтерфейс, чи слід обмежувати його класами, які, як ви очікуєте, в майбутньому можуть бути замінені?