У меня есть - рабочий интерфейс. каждый рабочий имеет энергию. класс juniorWorker что реализует работник интерфейс -Decorator Pattern issue in JAVA
public interface Worker {
int work();
double getEnergy();
}
и. младший рабочий имеет 100 энергии.
public class juniorWorker implements Worker {
public int work() {
return (int) getEnergy();
}
public double getEnergy() {
return 100;
}
}
и также - efficientWork, классы powerWork что реализует работник интерфейс. Эффективное действие снижает энергию на 20%. powerWork поднимет энергию на 10%.
public class efficientWork implements Worker {
private Worker worker;
public efficientWork(Worker w) {
this.worker=w;
}
public int work() {
return (int) (worker.getEnergy()*getEnergy());
}
public double getEnergy() {
return 0.8;
}
}
public class PowerWork implements Worker {
private Worker worker;
public PowerWork(Worker w) {
this.worker=w;
}
public int work() {
return (int) (worker.getEnergy()*getEnergy());
}
public double getEnergy() {
return 1.1;
}
}
На самом деле, я пытаюсь ИНТ работы() будет подсчитывать общую энергию каждый работник будет тратить. , например, мой Демо класс:
public class Demo {
public static void main(String[] args) {
Worker j= new efficientWork(new juniorWorker());
System.out.println(j.work());
}
}
этот случай РАБОТАЕТ - система будет печатать .
Но этот пример, печать 0 всегда:
public class Demo {
public static void main(String[] args) {
Worker j= new efficientWork(new PowerWork(new juniorWorker()));
System.out.println(j.work());
}
}
Помощь? я ожидаю получить 88! (110 * 0,8)
Почему вы пропускание объекта на работник всех классов, реализующих работник? – Joey
Я ожидаю получить 88! (110 * 0,8) – MoZZ
@HovercraftFullOfEels только что объяснил еще кое-что. – MoZZ