Предположим, у вас есть следующая команда:
public class PublishLastFiveCommand implements Command {
private Producer p;
public PublishLastFiveCommand(Producer p) {
this.p = p;
}
public void execute() {\
p.publishLastFive();
}
}
Дополнительно производитель позволяет вам
public void publishLastFive() {
System.out.println("publishing last 5");
}
Command c;
public void setCommand(Command c) {
this.c = c;
}
public void execute() {
c.execute();
}
Вопрос:
Использование по назначениюэто:
Command publish5 = new PublishLastFiveCommand(p);
p.setCommand(publish5);
p.execute();
Есть ли у меня изящный способ защитить себя от:
p.publishLastFive()
от прямого вызова?