我正在尝试使用 MVC 设计模式来观察模型类中的对象。例如,模型类代表一栋有 x 层楼的建筑物,每层都有一扇门,您将如何观察地板对象内部的门。 View 对象如何到达门对象以将自己注册为观察者?
最佳答案
也许你想要的是观察者模式:
该模式有一个观察者对象,用于监听事件并在事件发生时通知所有监听器。您可以让您的建筑物成为观察者并检查门的修改,当发生变化时您可以通知所有听众。现在您的建筑物是观察者, View 可以注册为监听器。 这是一个简单的代码示例:
这是充当观察者的构建类:
class Building {
List<Observers> listeners = new ArrayList<>();
public void checkDoors(){
//check for variations...
if(variation) notifyListeners(); //iterate over all observers and notify them
}
public void addListener(Listener listener){
listeners.add(listener);
}
}
这是监听门上通知的 View :
class View implements Listener {
public View(Building building){
building.addListener(this);
}
void handleDoor(Door door){
//do some stuff...
}
}
关于java - 如何使用 MVC 设计模式观察嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59348565/