final
一般而言,制作所有字段是一个好主意,但有时我发现自己在构造函数中做了所有事情。最近,我结束了一个类实际上做的 一切都
在构造函数中,包括读取属性文件并访问数据库。
一方面,这就是该类的用途,它封装了读取的数据,我喜欢创建完全初始化的对象。构造函数完全不复杂,因为它委派了大部分工作,因此看起来不错。
另一方面,感觉有点奇怪。此外,在大约17:58的演讲中,有充分的理由不对构造函数进行过多工作。我认为我可以通过将适当的虚拟变量作为构造函数参数来消除此问题。
问题仍然存在:在构造函数中做很多工作(甚至所有工作)是否不好?
…只要您不违反单一责任原则(SRP)并坚持使用依赖注入(DI)即可。
我最近一直在问自己这个问题。我发现反对在构造函数中进行工作的动机是:
…如果您的构造函数需要进行一些工作以使其遵守资源获取初始化(RAII),并且该类不违反SRP,并且可以正确使用DI;那么在构造函数中进行工作就可以了!如果您想防止使用初始化完全失败的类对象,而不是依赖用户检查某些返回值,甚至可以引发异常。
问题内容: 我正在尝试为博客平台创建一个构造函数,并且内部进行了许多异步操作。这些范围包括从目录中获取帖子,对其进行解析,通过模板引擎发送它们,等等。 所以我的问题是,让我的构造函数返回一个promise而不是调用它们的函数的对象是不明智的。 例如: 现在,用户可能 还不 提供补充的Promise链接: 这可能会带来问题,因为用户可能会感到困惑,为什么 在构造后仍然无法使用。 在构造函数中使用Pr
问题内容: 我正在尝试为博客平台创建一个构造函数,并且其中包含许多异步操作。这些范围包括从目录中获取帖子,对其进行解析,通过模板引擎发送它们,等等。 所以我的问题是,让我的构造函数返回一个promise而不是调用它们的函数的对象是不明智的。 例如: 现在,用户可能 还不 提供补充的Promise链接: 这可能会带来问题,因为用户可能会感到困惑,为什么 在构造后仍然无法使用。 在构造函数中使用Pro
问题内容: 据我所知,一个唯一可以做的事和一个不能做的事就是打电话给。 由于我们尚未调用,因此in 会在进入第一遍之前准备状态对象。本质上是相同的: 但是我看到了另一个有用的用例(在服务器端)。 让我们考虑一些异步的东西: 在这里,我们不能使用as分配来不会触发。 怎么样的?根据React docs : 在挂载发生之前立即调用。在之前调用),因此在此方法中设置状态不会触发重新渲染。避免在此方法中引
问题内容: 我是AP Java学生,正在为考试做练习。我遇到了这个问题,但我不明白答案: 考虑以下类别: 执行以下代码后输出是什么: 正确答案是B *。有人可以向我解释方法调用的顺序吗? 问题答案: B构造函数被调用。B构造函数的第一条隐式指令是(调用超类的默认构造函数)。因此,调用了A的构造函数。A的构造函数调用,它调用java.lang.Object构造函数,该构造函数不输出任何内容。然后被称
问题内容: 在Java中,为什么从构造函数中调用方法被认为是不好的做法?如果该方法计算量大,是否特别糟糕? 问题答案: 首先,通常在构造函数中调用方法没有问题。这些问题特别涉及调用构造函数的类的可重写方法以及将对象的引用传递给其他对象的方法(包括构造函数)的特殊情况。 避免重载方法和“泄漏” 的原因可能很复杂,但它们基本上都与防止使用未完全初始化的对象有关。 避免调用可覆盖的方法 避免在构造函数中
真的不可能在 dart 中为一个类创建多个构造函数吗? 在我的播放器类中,如果我有这个构造函数 然后我尝试添加这个构造函数: 我得到以下错误: 默认构造函数已定义。 我不是通过创建一个带有一堆非必需参数的构造函数来寻找解决方法。 有没有好办法解决这个问题?