回答
单身是否可能在每次实例化课程时使用?或者它只是偶尔用于不总是被调用的方法?如果是前者,在构造函数中执行它可能更直接;如果是后者,那么效率只会建议在每种方法中按需实例化(这是假定初始单例创建的开销很大 - 如果不是,只需在构造函数中执行并省去一些麻烦)。
考虑到它是一个单例,结果将是相同的:只有一个DB对象实例,并且它将始终是相同的。
因此,两种解决方案都可以工作,并产生相同的结果;至少,如果每次创建类的实例时都使用DB类 - 当然,性能差异可能可以忽略不计。
不过,随着越来越构造函数中的单一实例和其他方法使用一个类变量的解决方案将会有一个优点:你的方法不会依靠这个单,但只在一个类变量.. 。
...这意味着Dependency Injection将是更容易(你只需要修改你的__construct
方法,而不是每一个类的方法)如果你想使用它第一天 - 例如,以“模拟”您的数据库类,以进行自动化测试。
欲了解更多信息,你可以在这个博客帖子看看:What is Dependency Injection?
谢谢你这么详细的回答:) – bennn 2009-12-01 22:40:34
不客气:-)玩得开心! – 2009-12-01 23:08:10
- 1. C#:单身人士使用单身人士
- 2. 使用QtConcurrent单身人士
- 3. 单身人士设计模式在PHP
- 4. Android中使用的单身人士?
- 5. 单身人士滥用?
- 6. 单身人士用这个
- 7. RequireJS中的单身人士
- 8. ASP.NET中的单身人士
- 9. Python中的单身人士
- 10. iOS中的单身人士
- 11. 单身人士在di.dart
- 12. 由Singleton包装的单身人士或非单身人士
- 13. 为什么java.lang.Runtime是单身人士?单身人士的要求?
- 14. 我的单身人士模板真的是单身人士吗?
- 15. PHP单身人士数据库限制
- 16. 试图为单身人士使用ReactCSSTransitionGroup
- 17. 使用单身人士分配NSNumber值
- 18. 何时使用单身人士?
- 19. 使用单身人士共享变量
- 20. 单身人士在iOS用户默认
- 21. 在Swift中创建单身人士
- 22. EXC_BAD_ACCESS on removeFromSuperview在单身人士iOS中
- 23. 单身人士破坏者
- 24. 继承单身人士
- 25. NSMutableDictionary单身人士问题
- 26. 单身人士和范围
- 27. RavenDB的单身人士DocumentStore
- 28. 单身人士 - 未定义?
- 29. Embeded RavenDb的单身人士
- 30. 假FakeItEasy单身人士
如果它是一个单身那么它不应该是能够每次创建新实例。 – scotchi 2009-12-01 22:40:28