Design and implement a basic Tic-Tac-Toe game engine, ensuring clean object-oriented design and validation of win conditions.