您将使用Closure Library在何处实例化嵌套组件?

时间:2014-07-31 19:17:51

标签: javascript design-patterns dependency-injection instantiation google-closure-library

Closure库提供组件的基本生命周期:

  1. 实例化
  2. 渲染/装饰
  3. 文件输入
  4. 文件退出
  5. 处置
  6. 我专注于前两个。关于设计模式,何时在第一步中实例化嵌套组件会更好?

    1. 实例化:需要保留属性,直到通过addChild添加并在必要时消耗内存。无论如何,允许进行一些依赖注入更好的初始化,因为它接收的参数。

    2. 渲染/装饰:弄乱dom创建,因为它需要其他对象的引用,这可能已经很复杂了。它还需要先前存储在某些属性中的实例化参数。无论如何,持有实例化直到需要

    3. 也许在实例化之后调用的分隔方法包装了渲染?我问,因为Closure Libray的书籍和文档没有谈到这一点。

1 个答案:

答案 0 :(得分:0)

进行一些重构并尝试拆分逻辑,得出以下结论:

我到目前为止找到的最佳选择是在createDom方法中创建组件:

通常,组件所需的参数涉及它们呈现的数据。我的arquitecture使用 DAO ,这意味着所有数据对象都可以方便地连接。子组件通常需要一些其他数据对象,父级的DAO可以访问这些对象。由于父对象需要此DAO,因此可以将其存储在属性中,以便在 createDom 中使用。

另一件事是,在createDom组件中进行实例化和渲染,理论上只需要两行,这不是 mess

同样,它是增加凝聚力的最佳解决方案。