回答
单身是否可能在每次实例化课程时使用?或者它只是偶尔用于不总是被调用的方法?如果是前者,在构造函数中执行它可能更直接;如果是后者,那么效率只会建议在每种方法中按需实例化(这是假定初始单例创建的开销很大 - 如果不是,只需在构造函数中执行并省去一些麻烦)。
考虑到它是一个单例,结果将是相同的:只有一个DB对象实例,并且它将始终是相同的。
因此,两种解决方案都可以工作,并产生相同的结果;至少,如果每次创建类的实例时都使用DB类 - 当然,性能差异可能可以忽略不计。
不过,随着越来越构造函数中的单一实例和其他方法使用一个类变量的解决方案将会有一个优点:你的方法不会依靠这个单,但只在一个类变量.. 。
...这意味着Dependency Injection将是更容易(你只需要修改你的__construct
方法,而不是每一个类的方法)如果你想使用它第一天 - 例如,以“模拟”您的数据库类,以进行自动化测试。
欲了解更多信息,你可以在这个博客帖子看看:What is Dependency Injection?
谢谢你这么详细的回答:) – bennn 2009-12-01 22:40:34
不客气:-)玩得开心! – 2009-12-01 23:08:10
- 1. 单身人士设计模式在PHP
- 2. Android中使用的单身人士?
- 3. 单身人士在di.dart
- 4. ASP.NET中的单身人士
- 5. Python中的单身人士
- 6. 由Singleton包装的单身人士或非单身人士
- 7. 何时使用单身人士?
- 8. 在Swift中创建单身人士
- 9. 单身人士破坏者
- 10. 单身人士目标C
- 11. 单身人士和常量
- 12. 继承单身人士
- 13. AFNetworking和单身人士
- 14. 单身人士的后果
- 15. 提升单身人士
- 16. 单身人士和范围
- 17. ThreadLocal与单身人士
- 18. 单身人士和DbSimple
- 19. servlet是单身人士吗?
- 20. 单身人士和例外
- 21. MIDlet作为单身人士
- 22. 单身人士和线程
- 23. 如何在iPhone应用程序中使用单身人士?
- 24. 使MongoClient实例成为单身人士
- 25. 在阿卡·斯卡拉演员中使用单身人士
- 26. 我应该如何在DDD中使用单身人士?
- 27. 我在单身人士中使用保留还是复制?
- 28. 如何在dll中使用静态成员和单身人士?
- 29. 私人会员单身人士班
- 30. 如果父对象不是单身人士,那么孩子是单身人士?
如果它是一个单身那么它不应该是能够每次创建新实例。 – scotchi 2009-12-01 22:40:28