java - 如何从 Java 中的另一个类获取类的特定实例?

标签 java oop model-view-controller class instance

我使用 main 方法创建了以下类,它创建了 Application 的新实例和 ApplicationModel 的实例,此特定 Application 的 ApplicationViewApplicationController

public class Application
{

    // Variables

    private ApplicationSettings         settings;
    private ApplicationModel            model;
    private ApplicationView             view;
    private ApplicationController       controller;

    // Constructor

    public Application()
    {
        settings        = new ApplicationSettings();
        model           = new ApplicationModel();
        view            = new ApplicationView(model);
        controller      = new ApplicationController();
    }

    // Main method

    public static void main(String[] args)
    {
        Application application = new Application();
    }

    // Getters for settings, model, view, controller for instance of Application

}

我知道,Application 永远只有一个唯一的实例。

我想在我的 ApplicationModelApplicationViewApplicationController 类中获取这个特定实例。

这怎么可能?

最佳答案

我会在 Application 类上使用单例。

放置一个public static 方法来返回您唯一的应用程序实例。

public class Application
{
    private Application() { } // make your constructor private, so the only war
                              // to access "application" is through singleton pattern

    private static Application _app;

    public static Application getSharedApplication() 
    {
        if (_app == null)
            _app = new Application();
        return _app;
    }
}

您可以阅读有关单例设计模式的更多信息 here .

每次您需要唯一的 Application 实例时,您需要:

Application app = Application.getSharedApplication();

关于java - 如何从 Java 中的另一个类获取类的特定实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11987123/

相关文章:

java - 无法在 ucanaccess 中执行更新语句

php - 将父类作为参数传递给函数

javascript oop、instanceof 和基类

iOS MVC 实现

c# - 嵌入式语句不能是声明或标记语句

java - 对于带有 netty 3.10.6 的套接字客户端,异常 : java. nio.channels.NotYetConnectedException

java - GUI 创建时程序不退出

java - 如何阻止两个数组具有相同的内存

php - $this 的范围在 PHP 中是 funked 是错误还是功能?

asp.net-mvc - 无法使ASP.NET MVC应用重定向到未经授权的用户的错误页面