我有3个名字具有代表性的类,我打算以mvc模式进行这项工作。
以下是课程
public class view {
static int n;
static model Model=new model();
public static void main(String args[]){
Model.show(5);
System.out.println("The value is "+n);
}
}
public class model {
public interface Observer{
public void show(int n);
}
protected Observer observer;
public void setObserver(Observer observer) {
this.observer = observer;
}
public void show(int n)
{
System.out.println(n+1);
observer.show(5);
}
}
public class Logger implements model.Observer {
private view View;
public Logger(view View) {
this.View= View;
}
public void show(int n)
{
View.n=n;
}
}
我希望这可以按以下顺序工作
视图调用模型,模型依次调用观察者,观察者在视图中设置n的值。 但是当我试图调用观察者时,它在模型中给了我一个空指针异常。 我做错了吗?
答案 0 :(得分:1)
setObserver
,因此observer
为null
。
public class view {
static int n;
model Model;
private View(){
Logger logger = new Logger(this);
Model = new model();
Model.setObserver(logger);
}
private void doIt(){
Model.show(5);
System.out.println("The value is "+n);
}
public static void main(String args[]){
new View().doIt();
}
}