栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在构造函数中做很多事情不好吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在构造函数中做很多事情不好吗?

我认为“在构造函数中工作”是可以的…

…只要您不违反单一责任原则(SRP)并坚持使用依赖注入(DI)即可。

我最近一直在问自己这个问题。我发现反对在构造函数中进行工作的动机是:

  • 很难测试
    • 我看到的所有示例都是没有使用DI的地方。这实际上不是构造函数进行实际工作的错误。
  • 您可能不需要构造函数计算出的所有结果,从而浪费了处理时间,并且很难单独进行测试。
    • 这基本上是对SRP的违反,不是构造函数每个人所做的工作的错。
  • 旧的编译器在构造函数中引发异常时遇到麻烦,因此除了在构造函数中分配字段外,您不应该做任何其他事情。
    • 我认为考虑到编译器的历史缺陷,编写新代码不是一个好主意。如果我们这样做的话,我们最好也不要使用C ++ 11。

我的看法是…

…如果您的构造函数需要进行一些工作以使其遵守资源获取初始化(RAII),并且该类不违反SRP,并且可以正确使用DI;那么在构造函数中进行工作就可以了!如果您想防止使用初始化完全失败的类对象,而不是依赖用户检查某些返回值,甚至可以引发异常。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/485957.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号