我有3个班级。
Car.java
Garage.java
Driver.java
Race.java
所以我所处的情况是我目前有3个正在寻找并相互更新的单独的类。情况是当Garage
更新Car
属性时。每个Car
还分配了Driver
。如果汽车属性已更改,我将如何运行acknoweldgeNewTires()
?
我尝试使用Observer和Observable,但是显然它已被弃用,所以我正在寻找替代方法。
我当前的代码在这里:
Race.java
public class Race {
public static void main(String[] args){
Garage teamBlue = new Garage();
Car blueCar = new Car();
teamBlue.changeTires("Michelin");
}
}
Garage.java
public class Garage {
Car car;
public void changeTires(String tire){
Car.tiresBrand = tire;
}
}
Car.java
public class Car {
public static String tiresBrand = "Dunlop";
public Driver driver;
public Car(){
driver = new Driver(this);
}
}
Driver.java
public class Driver {
public Car driversCar;
public Driver(Car car){
driversCar = car;
}
public void acknoweldgeNewTires(){
System.out.println("New tires received!");
}
}
答案 0 :(得分:1)
1)请勿在{{1}}中使用is-a
。轮胎是轿车的,不是轿车的。
2)要“拦截”此类事件,在更新type Monad = Applicative & Chain; // Monad is-a Applicative and a Chain
状态时,应优先使用方法而不是static
字段访问。
您可以使用发布者/订阅者模式来减少类之间的耦合,但是这似乎是一个开销。
因此在车库中,您可以做到:
Car
在车上
public