Player
(인터페이스) 객체가있는 GameLogic
객체가 있습니다.캡슐화를 중단하지 않고 다른 객체의 메소드 호출
GameLogic
은 getAvailableMoves()
입니다.이 코드는 GameLogic
안에 사용되어 Player
의 사용 가능한 동작을 알 수 있습니다.
저는 현재 전략 중 Minimax 알고리즘을 사용해야하는 AIPlayer
(구현 코드 : Player
)을 구현 중입니다. 그런 일이 일어나기 위해서 AIPlayer
에서 의 getAvailableMoves()
메서드를 사용할 수 있기를 원합니다. 그러나 캡슐화를 깨지 않고 그렇게하고 싶습니다. 즉, Player
에 대한 참조로 GameLogic
을 전달하지 않으려 고합니다.
이 시나리오에 적절한 솔루션은 무엇입니까? 나는 디자인 패턴을 사용해야한다고 생각하지만 어떤 패턴인지 모르겠습니다.
당신은 서비스 클래스가 필요합니다. – SynchroDynamic