C++ 从构造函数调用耗时的函数
我现在看到的是一组从公共基类派生的类。大多数(但不是全部)类都需要一些通过模态对话框获得的输入参数。这些对话框是在类的构造函数中设置和执行的。只要对话框没有完成,对象就不会完全构造。延迟构造函数的执行可能会出现什么问题 我想用一种回调机制来替换一切,这种机制提供给对话框来设置对象,或者在构建之后立即使用工厂来获取可用对象。还有什么其他模式可以解决这种情况 就语言而言,不会出现任何“问题”。构造函数可以随心所欲地使用多长时间 问题可能出在它可能引起的混乱中。使用该类的程序员会意识到构造函数会长时间阻塞线程吗C++ 从构造函数调用耗时的函数,c++,design-patterns,constructor,C++,Design Patterns,Constructor,我现在看到的是一组从公共基类派生的类。大多数(但不是全部)类都需要一些通过模态对话框获得的输入参数。这些对话框是在类的构造函数中设置和执行的。只要对话框没有完成,对象就不会完全构造。延迟构造函数的执行可能会出现什么问题 我想用一种回调机制来替换一切,这种机制提供给对话框来设置对象,或者在构建之后立即使用工厂来获取可用对象。还有什么其他模式可以解决这种情况 就语言而言,不会出现任何“问题”。构造函数可以随心所欲地使用多长时间 问题可能出在它可能引起的混乱中。使用该类的程序员会意识到构造函数会长时间
在不知道任何代码细节的情况下,回调或其他异步机制可能更好,以避免阻塞线程。这些类做什么?如果它们不只是为了管理UI,那么您在关注点分离方面存在问题。。。用户输入收集应该与处理输入的类分开。我认为这是一个有效的设计选择。有一个名为“UserInput”的类是有意义的,该类将在用户提供输入后完全构造 它还导致了与数据输入方法的紧密耦合-交互式:例如,您将无法将这些类用于模型数据 因此,如果您需要选择的灵活性,请将数据输入与业务逻辑解耦。如果您想随时使用对象,请在构建时询问用户输入