Go GoF 디자인 패턴 (wikipedia), ConcreteCommand
인스턴스에 Receiver
인스턴스에 대한 링크 (참조)가 있어야합니까? 다음 명령을 구현했습니다 :올바른 명령 설계 패턴 구현을 위해 수신기에 대한 링크가 필요합니까?
internal class PutBlockOntoBlockCommand : ICommand {
private readonly int _srcTower;
private readonly int _dstTower;
public PutBlockOntoBlockCommand(int srcTower, int dstTower) {
_srcTower = srcTower;
_dstTower = dstTower;
}
public void Execute(Robot robot, Construction construction) {
robot.MoveBlocks(_srcTower, _dstTower, construction);
}
}
이 명령은 로봇이 건설 현장에서 블록을 이동하도록 지시합니다. 명령의 인스턴스에 수신자 (로봇)의 인스턴스에 대한 참조가 없다는 점에 유의하십시오. 대신 명령은 Robot
의 인스턴스를 제공하여 명령을 실행하기 위해 Invoker
(필자의 경우 RobotCommandCenter
)에 의존합니다.
나는 명령은 명령이어야하는 것이 만 의도를 캡슐화해야 확신하고 하지 명령의 대상을 지정하는 책임을 져야한다. 내 경우에는 사용자로서 어떤 로봇이 작업을 실행하는 데 사용되는지는 신경 쓰지 않습니다.
제 질문은 : "Command Design Pattern"으로 제시된 구현을 기술적으로 참조 할 수 있습니까?
나는이 책을 가지고 있는데, 그것을 링크 할 수 없기 때문에 나는 그 책을 언급하고있다. "영국 경찰"같은 것이 없으며 "나는 좋다"라는 말이 올바른 것은 아닙니다. 구현이 "기술적으로"명령 설계 패턴인지 묻습니다. –
@ THX-1138 그게 내가 의미하는 바입니다. 나는 Command 패턴에 "기술적 인 정의"가 있다는 것을 모릅니다. "디자인 패턴 경찰"에 대한 유머러스 한 말로 내가 말하고자하는 것은 그것이 주관적이라는 것입니다. 비록 내가 위에서 언급했던 것에 따라 나의 의견은있다. – tcarvin