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

从构造函数调用耗时函数

  •  0
  • pmr  · 技术社区  · 15 年前

    我现在看到的是一组从公共基类派生的类。大多数类(但不是所有类)都需要一些通过模式对话框获得的输入参数。这些对话框是在类的构造函数中设置和执行的。只要对话框没有完成,对象就没有完全构造好。延迟构造函数的执行会出现什么问题?

    我正在考虑用一个回调机制来替换所有内容,这个回调机制提供给对话框来设置对象,或者在构建之后使用工厂来获取可用的对象。还有什么其他模式可以解决这种情况?

    3 回复  |  直到 15 年前
        1
  •  4
  •   Stack Overflow is garbage    15 年前

    就语言而言,不会出现任何“问题”。构造函数可以随意使用。

    可能是问题的地方在于它可能导致的混乱。使用该类的程序员是否会意识到构造函数会长时间阻塞线程?

    如果不知道代码的任何细节,回调或其他异步机制可能更好,以避免阻塞线程。

        2
  •  4
  •   Eric J.    15 年前

    这些课程是做什么的?如果他们不只是为了管理用户界面,那么您的关注点分离就有问题了…用户输入收集应该与处理该输入的类分开。

        3
  •  1
  •   xtofl Adam Rosenfield    15 年前

    我认为这是一个有效的设计选择。有一个名为“userinput”的类是有意义的,它将在用户 提供输入。

    它也会导致与数据输入方法的紧密耦合——交互式:例如,您将无法将这些类与模型数据一起使用。

    因此,如果您需要选择的灵活性,请将数据输入与业务逻辑分离。如果您想要准备好使用对象,请在构建时向用户请求输入。