我的项目中的读/写操作类似于link
答案中建议的模式是Singleton Pattern
,它是用枚举实现的。但是我遇到了我们正在关注的代码
工厂类包含以下代码
public class ClassAFactory {
public static ClassAFactory getInstance() throws Exception {
return new ClassAImpl();
}
}
我有以下疑惑
- 在这种情况下,在这里组织代码的适当设计模式是什么?
- 一次又一次地重复使用同一个实例的优势是什么,而不是创建一个新实例?
醇>
PS:应用程序的本质是Web应用程序。我正在尝试使用集中式部件/模块来完成数据库中的所有读/写操作。
有人请帮助我了解这一点。
答案 0 :(得分:0)
主要原因是如果需要,使用Singleton将更容易同步READ,WRITE操作。对于非线程安全资源(例如来自文件系统f.ex的文件)的写操作,这是n的情况。创建一个新对象超时是没有意义的,并且可能会有多个线程试图通过非线程安全资源进行写入。
在使用一次又一次创建课程的工厂方面的优势。我真的没有看到任何优势。
根据您上次编辑进行更新。您可以使用存储库模式或DAO,它们可以是单例还是非单例。请阅读以下帖子。我相信这就是你所需要的:
Spring @Repository best practices
还有一个小小的澄清。它说Spring,但实际上这些原则可以应用于任何情况。因此,您不需要Spring才能应用本文中讨论的主题。
如果这对你有用,请告诉我。
从文章中可以看出,Singleton是与DAO / Repository结合使用的常用方法。