首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单例诉单例工厂

单例诉单例工厂
EN

Stack Overflow用户
提问于 2016-02-17 10:44:15
回答 1查看 550关注 0票数 0

我们有一个有很多模型对象的系统(例如CarPedestrianRoad,.)

目前,它们都有管理器(CarManagerPedestrianManagerRoadManager),它们返回相应类的单例。

另一种建议是使用ManagerFactory单例,它可以返回CarManagerPedestrianManagerRoadManager的实例。(例如ManagerFactory.getInstance().getCarManager())

我们还为项目编写了测试,关注的是,如果我们使用依赖注入,我们将需要一个对象的实际实例来注入管理器。

这是一个好的选择吗?在这种情况下,你能把单身汉换成别的东西吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-17 11:11:13

单例直接或单例工厂基本上是相同的--对某物的不透明引用--隐藏的依赖关系。通过全局文本搜索,您可以找到这些依赖项,因此这两个选项都不会使情况变得更好或更糟。

依赖注入意味着您公开声明,例如,A需要B的一个实例(或者一个符合协议C的实例是一个更好的依赖情况)。这要求您在某个地方实例化B并将其传递给A。

从测试的角度来看,依赖注入要好得多,因为您通常希望创建一个模拟版本的B并使用它来测试A。测试单身是一种痛苦..。

因此,理想情况下,所涉及的第一个类将创建一个B的实例,并将其传递给其他需要它的类,然后从那里传递该实例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35454406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档