在另一个类更新对象时更新对象值

时间:2019-04-26 13:18:59

标签: java

我有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!");
    }
}

1 个答案:

答案 0 :(得分:1)

1)请勿在{{1​​}}中使用is-a。轮胎是轿车的,不是轿车的。
2)要“拦截”此类事件,在更新type Monad = Applicative & Chain; // Monad is-a Applicative and a Chain 状态时,应优先使用方法而不是static字段访问。

您可以使用发布者/订阅者模式来减少类之间的耦合,但是这似乎是一个开销。

因此在车库中,您可以做到:

Car

在车上

public