저는 Typescript로 게임을 작성하고 있으며 " 인터페이스 기반 프로그래밍 " 이라는 아이디어를 고수하기로 결정했습니다 . 여기서는 인터페이스 대신 구현, 객체의 인터페이스를 기반으로 코드를 작성합니다.
나는 많은 수의 인터페이스와 인터페이스를 구현 한 클래스를 작성하고 한 걸음 물러서서 클래스가 단순하여 구현을 변경할 필요가 없을 정도로 간단하다는 것을 깨달았습니다. 수업은 ( Phaser.Sprite
탱크처럼 행동하기 위해 제한된 방식으로 움직입니다).
그런 다음 몇 년 전에 YAGNI 의 아이디어에 대해 읽은 것을 기억합니다. YAGNI 는 기본적으로 사용하지 않을 수있는 것을 포함하도록 코드를 과도하게 엔지니어링해서는 안됩니다.
모범 사례에 따라 모든 클래스가 인터페이스를 구현해야합니까, 아니면 나중에 교체 될 것으로 예상되는 클래스로 제한해야합니까?