好吧,由于您没有提供太多细节,请耐心等待可能与您的问题不完全匹配的答案。
此外,您构建和提出这个问题的方式让我对您使用线程感到不安。我认为你应该重新考虑你是否需要线程来做你正在做的事情。
但是,为了回答……我会给你两个广泛的模式来尝试调用这个 Controller 类方法。
当你创建它时,给你的线程一个对你的控制器的引用。
public class MyThreadClass extends Thread
{
private Controller controller;
public MyThreadClass(Controller controller)
{
this.controller = controller;
}
public void run()
{
//Call method from other class (public class Controller)
controller.someMethod();
}
使控制器的方法公开和静态(如果您不知道如何做到这一点,那么不要尝试使用这种方法 - 如果您已经遇到问题,声明静态的东西比您想要弄乱的更复杂/假设具有方法可访问性。)然后像这样调用它:
public void run()
{
Controller.someMethod();
}
对于您关于 MVC 的问题:
我可以实例化类控制器,但这不会破坏保持 MVC 原则的目的吗?
MVC 要求 View 可以连接到 Controller 或以某种方式与其通信。实例化控制器通常对您的设计模式是否为 MVC 没有影响。话虽这么说,如果你问的是让每个 MyThreadClass 实例化它自己的控制器版本......那将是糟糕的 MVC。不要那样做。