代码之家  ›  专栏  ›  技术社区  ›  poke

摆动和延迟加载组件

  •  3
  • poke  · 技术社区  · 14 年前

    Visual Editor

    private JPanel getSomePanel ()
    {
        if ( somePanel == null )
        {
            somePanel = new JPanel();
            // construct the panel
        }
        return somePanel;
    }
    

    initialize 调用根容器的构造函数,在其中构造根面板并添加所有其他元素(通过延迟加载)。所以实际上,所有组件都是在构造根容器时创建的,只是嵌套到多个方法中。

    在这种情况下,延迟加载真的有什么用吗?在哪些UI情况下我应该使用延迟加载?当使用延迟加载时,是否允许我直接访问成员变量?还是每次都要调用getter?

    谢谢!

    2 回复  |  直到 14 年前
        1
  •  5
  •   Erick Robertson    14 年前

    使用延迟加载时,每次访问成员变量时都应该使用getter。这是延迟加载的基本部分。

    但是,在您描述的这种情况下,没有理由使用延迟加载。我不得不怀疑,visualeditor的作者是不是有一些懒惰加载的东西,他觉得它总是需要被使用,或者只是出于某种武断的原因决定他想在工具中使用它。

    显然,当你谈论加载数据时,会有一些不同的事情发生。如果有一个下拉列表在面板打开时隐藏,并且在加载时包含大量信息,则在该下拉列表变为可见之前,您可能不希望加载该下拉列表。我仍然没有理由不立即实例化下拉列表,尽管它是隐藏的。

    我不认为延迟加载是面板的正常行为。我无法解释为什么visualeditor选择以这种方式生成代码。

        2
  •  3
  •   camickr    14 年前

    (UI)编辑器生成

    懒惰真的有什么用吗 在这种情况下装货?