将逻辑与表示分开更多是最佳做法吗?

时间:2013-05-24 21:52:28

标签: java model-view-controller javafx-2 decoupling

这应该是一个相当简单的问题,但我似乎无法在互联网上找到一个好的答案。

我一直在研究Java FX,我发现它很有趣,虽然我很难满足于如何设法将逻辑与我的程序的表示分开。

注意:此可能可能重复
Javafx 2.0 How-to Application.getParameters() in a Controller.java file
然而,在接受的答案中的建议是使变量静态,我也不希望这样做。

背景

我发现的所有教程都有一个控制器,它应该是演示文稿和good'ol MVC方式逻辑之间的连接。然而,在这里,我发现自己陷入困境,因为我不想初始化一些东西,在这种情况下不重要的东西,并将其传递给我的控制器

问题

我是否应该将内容传递给我的控制器,还是应该负责初始化(通过自身或通过实例化另一个具有该责任的对象)?

TL; DR

我想在 Java FX 中将内容传递给我的控制器,我应该这样做还是不好的做法?如果我应该传递东西,我该怎么做?

一些代码澄清:

Heres是我不想做的事情:

主要课程

@Override
public void start(Stage stage) throws Exception {
    Parent root = FXMLLoader.load(getClass().getResource("ChatGUI.fxml"));

    Scene scene = new Scene(root);

    stage.setScene(scene);
    stage.show();
}

示例控制器(带注释)

@Override
public void initialize(URL url, ResourceBundle rb) {
    //Intialize a bunch of stuff here.
    connectionManager = new MyConnectionManager();    
}
以及我想做的事情:

主要课程

@Override
public void start(Stage stage) throws Exception {
    Parent root = FXMLLoader.load(getClass().getResource("ChatGUI.fxml"));
    MyConnectionManager connectionManager = new MyConnectionManager();
    root.addConnectionManager(connectionManager);

    Scene scene = new Scene(root);

    stage.setScene(scene);
    stage.show();
}

示例控制器(带注释)

@Override
public void initialize(URL url, ResourceBundle rb) {
    //Intialize a bunch of stuff here.
    connectionManager = new MyConnectionManager();    
}

public void addConnectionManager(ConnectionManager manager) {
    this->myManager = manager; 
} 

我想实现类似于上面第二个例子的东西,这是可能的还是我对MVC模式有一些基本的误解?

0 个答案:

没有答案