我有一个在我的项目中用作普通类的类。该类可以访问在该类中注入的其他一些核心类,通过这些核心类我可以调用一些API。因此,当我需要在一个类中调用API时,通常会注入该通用类并使用特定的API。但是,当我在许多其他类中注入通用类时,即使我需要使用其中一个或两个核心类,所有核心类也会被注入。 这是我的普通班
public class ApiService {
private StuResource stuResource;
private VendResource vendResource;
private EduResource eduResource;
private RKEResource rKEResource;
private AleResource aleResource;
private GloResource gloResource;
@Inject
public ApiService(StuResource stuResource, VendResource vendResource,
EduResource eduResource, RKEResource rKEResource,
AleResource aleResource, GloResource gloResource) {
this.stuResource = stuResource;
this.vendResource = vendResource;
this.eduResource = eduResource;
this.rKEResource = rKEResource;
this.aleResource = aleResource;
this.gloResource = gloResource;
}
{Methods for call APIs}
}
因此,我计划使用单例模式,这样我就可以一次创建一个普通类的对象,并且可以在其他类的任何地方使用该对象。 在此实施中帮助我。在这种情况下如何实现单例模式。
答案 0 :(得分:2)
这根本不是一个好主意-将所有功能放在一个地方。
为每个业务流程创建单独的服务,仅为其提供必需的资源。即
@Component
public class SchoolService {
private StuResource stuResource;
private EduResource eduResource;
private GloResource gloResource;
@Inject
public SchoolService(StuResource stuResource, EduResource eduResource, GloResource gloResource) {
this.stuResource = stuResource;
this.eduResource = eduResource;
this.gloResource = gloResource;
}
{Methods for call APIs}
}
然后
@Component
public class PayService {
private VendResource vendResource;
private EduResource eduResource;
@Inject
public ApiService(VendResource vendResource, EduResource eduResource) {
this.vendResource = vendResource;
this.eduResource = eduResource;
}
{Methods for call APIs}
}
以此类推。
根据需要,这些类中的每一个都是单例。