간접적으로 그것을 보유하고있는 다른 오브젝트에 질문하는 오브젝트가 "나쁜"디자인인지 궁금합니다. 예를 들어 ...OO 디자인 - 오브젝트가 간접적으로 보유하고있는 클래스에 질문합니다.
요구 사항 : 문자 (개체)가 눈금으로 이동합니다. 다른 지점으로 이동하려 할 때 지점을 이미 차단했는지, 그리드 부분에 완전히 접근 할 수 없는지 여부를 알아야합니다. (캐릭터 자체가 알아야 할 점에 유의하십시오.)
응용 프로그램에서 상태는 tilemanager와 charactermanager를 보유합니다. tilemanager는 어떤 타일이 접근 가능하고 어떤 타일이 접근 가능한지를 안다. 캐릭터 매니저는 캐릭터의 타일 위치를 알고 있습니다.
캐릭터가 해당 상태에서 함수를 호출하는 것이 합리적일까요? AuthorizeMovement
. TileManager와 CharacterManager를 통해 이동이 가능한지 여부를 결정하고 true이면 true를 반환하고 그렇지 않으면 false를 반환합니다.
이것은 중요한 원칙을 위반하여 길을 가로막고 있습니까?
분명히이 문제는 일반화되어 문제를 이해하는 데 필요한 것으로 제거됩니다.
+1 동의했습니다. 반드시 나쁜 것은 아닙니다. 예를 들어, 관찰자는 state_changed 알림 후에 해당 상태에 대해 관찰 된 개체 (모든 관찰자 목록 보유)에 요청합니다. 무한 루프/데드락에주의하십시오. –