저는 현재 성을 방어해야한다는 게임이었습니다. 각 레벨은 적들이 들어 와서 공격하는 레인에서 구성됩니다. 성은 모든 레벨에서 동일합니다. 레벨 1에서 성이 손상되면 레벨 2에서 같은 건강 포인트로 "산란"합니다. 그래서 제가 게임의 시작에서 한 것은 성 개체 하나를 만들고 게임의 나머지 부분에서 이것을 유지하는 것입니다. 여기 패턴이있는 게터 체인을 피하십시오.
내 "디자인"을 명확히하기 위해 그림이다 :를 지금 적들이 성과 내 코드 피해에 도착하면 다음과 같다 : '케이
this.getLane().getLevel().getGame().getCastle().doDamage(1);
정말 잘 보입니다. 나는 더 깨끗한 해결책을 제시하기 위해 몇 가지 디자인 패턴을 조사해 왔지만 실제로는 찾지 못했고 누군가 아이디어가 있는지 궁금해하고있었습니다.
(나는 aswell 거기 게터 체인에 대한이 질문이 알고 : https://stackoverflow.com/questions/8744668/java-getter-chaining-bad-or-good 는하지만 정말 해결책을 마련하지 않는)이 변환
[태그 : law-of-demeter]를 태그로 추가했습니다.이 질문은 본질적으로 그 원칙에 묶여 있기 때문입니다. 따라서, http://stackoverflow.com/questions/163071/coupling-cohesion-and-the-law-of-demeter – Fuhrmanator